小编jam*_*ell的帖子

Open Graph"文章"类型的正确实现是什么?

我需要将Open Graph标签添加到博客页面.它从阅读规范(似乎http://ogp.me/使用)og:typearticle是要走的路.但是,我发现规范不清楚,我不确定如何正确实现语法.

两个示例网站以不同方式实现此示例:

  1. 来自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)

    请注意ogarticle名称空间已注册,og并且article用作属性.

  2. 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用作属性.

  3. 我在上面看到的变体,仅注册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,虽然这有效,但我想知道确切正确的语法是什么?

article opengraph

13
推荐指数
2
解决办法
2万
查看次数

为什么 iOS Safari 和 Chrome 不滚动页面并在复选框和单选输入字段上显示验证消息?

鉴于此示例代码,为什么在 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)

html safari google-chrome radio-button ios

5
推荐指数
0
解决办法
615
查看次数

在符号链接部署中启用 Opcache 文件缓存时,是什么导致了段错误?

我正在使用 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 文件在部署之间似乎已损坏。

环境:

  • CentOS 7.9.2009
  • PHP 7.4.15
  • 每个池都配置为在其自己的用户下运行
  • Opcache 文件存储在 /var/www/vhosts/[project]/opcache 中
  • SELinux 已启用

我的 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)

php opcache php-deployer fpm

5
推荐指数
1
解决办法
2137
查看次数