我需要将Open Graph标签添加到博客页面.它从阅读规范(似乎http://ogp.me/使用)og:type的article是要走的路.但是,我发现规范不清楚,我不确定如何正确实现语法.
两个示例网站以不同方式实现此示例:
来自GitHub的示例:(https://github.com/niallkennedy/open-graph-protocol-examples/blob/master/article-utc.html)
<head prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article#">
<meta property="og:title" content="...">
<meta property="og:type" content="article">
<meta property="article:published_time" content="...">
Run Code Online (Sandbox Code Playgroud)
请注意og和article名称空间已注册,og并且article用作属性.
BBC新闻文章
<head>
<meta property="og:title" content="...">
<meta property="og:type" content="article">
<meta property="og:article:author" content="...">
Run Code Online (Sandbox Code Playgroud)
注意没有命名空间注册,og并且og:article用作属性.
我在上面看到的变体,仅注册og名称空间并仍然og:article作为属性引用.
<head prefix="og: http://ogp.me/ns#">
<meta property="og:title" content="...">
<meta property="og:type" content="article">
<meta property="og:article:published_time" content="..">
Run Code Online (Sandbox Code Playgroud)选项3是我第一次尝试实现它时使用的.当我通过Facebook验证工具运行时,我被告知:
此类对象不允许名为"og:article:published_time"的属性.
目前,我已经选择了1,虽然这有效,但我想知道确切正确的语法是什么?
鉴于此示例代码,为什么在 iOS Safari/Chrome 上提交表单时,浏览器不会将页面滚动到顶部并在所需的单选框上显示验证错误?
这可以在文本输入字段以及这些浏览器的桌面版本和 Android 上按预期工作。
如果删除文本填充以缩短页面以使字段适合视口,则会显示验证消息。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Form Radio Test</title>
</head>
<body>
<p>iOS Safari/Chrome does not scroll the page/focus on required radio or checkbox input fields when submitting the form. It does however do this on text fields.</p>
<form>
<fieldset>
<legend>Select an option (required)</legend>
<p>
<label for="a">A</label>
<input name="a" type="radio" value="a" id="a" required>
<label for="b">B</label>
<input name="a" type="radio" value="b" id="b" required>
</p>
</fieldset>
<fieldset>
<legend>Enter a value (required)</legend> …Run Code Online (Sandbox Code Playgroud)我正在使用 PHP 部署程序,它是一个基于符号链接的部署工具,opcache:reset在部署后调用。
最近,我在部署后的 PHP-FPM 进程中遇到了段错误。
这表现为 PHP 日志中的段错误/内存耗尽警告正在输出或来自 Apache 的 500/503 错误。
多年来这一直运作良好,所以我很困惑到底是什么导致了这种情况的发生。
在第一个段错误之后,我可以在受影响池的每个页面刷新上重现此情况。
如果我重新启动 PHP-FPM 进程,第一次会正确提供页面,然后出现段错误。
我怀疑这与 Opcache 有关,因为如果我删除 Opcache 缓存文件并重新启动 PHP-FPM,问题就会消失。如果我禁用opcache.file_cache,那么就没有问题了。请注意,我并不专门使用文件缓存。
当我(不科学地)检查 PHP 在内存耗尽错误期间报告的文件的 opcache 版本时,我注意到它们似乎被截断或丢失了未发生段错误的 opcache 文件的先前版本中存在的数据。当我删除那些特定的 opcache 文件并重新启动 PHP-FPM 时,问题就消失了。因此,我认为 opcache 文件在部署之间似乎已损坏。
环境:
我的 opcache 配置:
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=96
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=4096
opcache.max_wasted_percentage=5
opcache.validate_timestamps=1
opcache.revalidate_path=0
opcache.revalidate_freq=2
opcache.max_file_size=0
Run Code Online (Sandbox Code Playgroud)
核心转储:
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7
Copyright (C) 2013 Free …Run Code Online (Sandbox Code Playgroud) article ×1
fpm ×1
html ×1
ios ×1
opcache ×1
opengraph ×1
php ×1
php-deployer ×1
radio-button ×1
safari ×1