Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 多个open graph标记,哪一个优先?_Html_Facebook_Metadata_Facebook Opengraph_Reddit - Fatal编程技术网

Html 多个open graph标记,哪一个优先?

Html 多个open graph标记,哪一个优先?,html,facebook,metadata,facebook-opengraph,reddit,Html,Facebook,Metadata,Facebook Opengraph,Reddit,我见过关于FB open graph图像标记的各种SO线程,例如: 这些线程已经有2.5年的历史了,所以我想知道规则是否已经更新了。此外,最高分辨率图像显示的公认答案似乎不完美。如果图像不一样怎么办?例如,如何为主页创建一个图像,然后在AJAX加载的页面上创建另一个图像 由于FB、Reddit和许多高流量网站都使用这些规则,显然这些信息非常有价值。谢谢 由于reddit是开源的,您可以查看它的行为 你想找的地方是。现在,这是与Open Graph相关的代码: # Allow the co

我见过关于FB open graph图像标记的各种SO线程,例如:

这些线程已经有2.5年的历史了,所以我想知道规则是否已经更新了。此外,最高分辨率图像显示的公认答案似乎不完美。如果图像不一样怎么办?例如,如何为主页创建一个图像,然后在AJAX加载的页面上创建另一个图像


由于FB、Reddit和许多高流量网站都使用这些规则,显然这些信息非常有价值。谢谢

由于reddit是开源的,您可以查看它的行为

你想找的地方是。现在,这是与Open Graph相关的代码:

    # Allow the content author to specify the thumbnail using the Open
    # Graph protocol: http://ogp.me/
    og_image = (soup.find('meta', property='og:image') or
                soup.find('meta', attrs={'name': 'og:image'}))
    if og_image and og_image['content']:
        return og_image['content'], None
    og_image = (soup.find('meta', property='og:image:url') or
                soup.find('meta', attrs={'name': 'og:image:url'}))
    if og_image and og_image['content']:
        return og_image['content'], None
所以,它会使用任何东西,哪一个应该是第一个匹配的标签。

——Facebook在其文档IIRC中引用了它自己——说,“如果一个标签可以有多个值,只需在你的页面上放置同一标签的多个版本。在冲突期间,会优先选择第一个标签(从上到下)。”…不确定FB是否尊重这一点,但在图像方面,他们可能更愿意选择他们认为在新闻提要/时间轴中显示最好的大小或纵横比。“例如,如何在主页上显示一幅图像,然后在AJAX加载的页面上显示另一幅图像?”——这是一个完全不同的问题。开放图形对象由其URL标识——如果您想共享通过AJAX加载的内容,请确保内容有自己的唯一URL,Facebook的scraper可以从中请求OG元数据。