标题中的OpenGraph前缀是否必要?

时间:2018-02-22 17:11:39

标签: facebook-opengraph opengraph

我发现了许多声明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#"

这么多组合,其他网站什么都不做,只使用简单的元标记。声明是可选的还是我应该以哪种形式使用?

1 个答案:

答案 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>