我发现了许多声明opengraph的方法。但哪一个是“正确的”方式?
http://ogp.me/在源代码中使用
<head prefix="og: http://ogp.me/ns#">
但是在示例中改为使用html-tag:
<html prefix="og: http://ogp.me/ns#">
与facebook的组合看起来像
<html prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
或没有前缀
<html xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#">
ogp.me链接到imdb作为以这种方式使用它的示例
<html xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">
其他网站设置og:类型“网站”或“文章”内联像
<html prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# website: http://ogp.me/ns/website#">
ogp.me链接zu a doc: https://de.scribd.com/doc/30715288/The-Open-Graph-Protocol-Design-Decisions 见第15页;它说不要用这个表格吗?
xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#"
这么多组合,其他网站什么都不做,只使用简单的元标记。声明是可选的还是我应该以哪种形式使用?
答案 0 :(得分:1)
prefix="og: http://ogp.me/ns#"
是开放图协议元标记所需的前缀。
xmlns
是XML命名空间的一个属性,更多关于这一点:
Open Graph namespace declaration: HTML with XMLNS or head prefix?
您可以根据需要在<html>
或<head>
元素上进行设置,区别在于前缀的范围。将其限制为<head>
没有任何好处,即使在大多数情况下,您只会使用<meta>
内的相关<head>
标记。
您看到网站使用的前缀的fb: http://ogp.me/ns/fb#"
部分是您希望使用“fb:”而不是“og:”来扩展使用Facebook自己的属性。
请参阅:https://developers.facebook.com/docs/sharing/opengraph/object-properties
这应该是完全可以使用的:
<html lang="{lang}" prefix="og: http://ogp.me/ns#">
<head>
...
<meta property="og:type" content="website"><!-- "og:type" can be omitted for 'website' (is default), required for other types: http://ogp.me/#types -->
<meta property="og:url" content="https://example.com">
<meta property="og:title" content="...">
<meta property="og:description" content="...">
<meta property="og:image" content="https://example.com/path/to/image.png">
<meta property="og:image:type" content="image/png">
<meta property="og:image:alt" content="...">
<meta property="og:image:width" content="...">
<meta property="og:image:height" content="...">
<meta property="og:site_name" content="...">
</head>
...
</html>