og:image 和 og:url 应该输入 <meta> 还是 <link>?
Should og:image and og:url put in <meta> or <link>?
对于 og:image
和 og:url
,因为它们有 URL,我可以将它们放在 link
标签而不是 meta
标签中,并且它更可取吗?
还有这两个标签的使用有什么区别w.r.t。 og:image
和 og:url
?
如果值为 URL.
,您 必须 使用 link
而不是 meta
来自definition of the meta
element:
The meta
element represents various kinds of metadata that cannot be expressed using the […] link
[…] elements.
但是 URL 当然可以使用 link
元素来表达(因为这是它的目的)。
如果您对 URL 值使用 meta
元素,RDFa 解析器将提取字符串值而不是 URL 值。这也意味着他们将无法对基 URL.
应用相对引用
例子
假设这些元素在文档中 URL http://example.com/foo
:
<link property="schema:url" href="/bar" />
<meta property="schema:url" content="/bar" />
link
元素的值是 URL http://example.com/bar
。
meta
元素的值是字符串 /bar
.
然而,在 OGP 的情况下......
OGP’s documentation 中的示例使用 meta
元素作为 URL 值;没有包含 link
元素的示例。
虽然这意味着他们的许多示例都是无效的 HTML+RDFa,并且在这些情况下 RDFa 解析器将提取字符串而不是 URLs,
可能 Facebook(或任何其他消费者)实际上并未使用 RDFa 来解析内容,可能是这种情况他们不支持 link
元素。
注意:这些只是可能性,从其文档的质量来看。我没有 experience/insight,因为我不使用 Facebook。因此,如果您关心他们的 OGP-based 功能,您可能想使用 Facebook 对其进行测试。
我不知道 OGP 的其他主要消费者,所以这对你的情况来说可能不是问题,但如果你打算为 Facebook 实施它,
坚持元标记。
使用 open graph debugger 进行快速实时测试并摆弄 og:
标签,似乎 facebook 仅在将它们放在 <meta>
中时才识别它们。
试一试
如果您创建一个空 HTML 文件并在其 <head>
部分包含一个 og:url
标签,请将其上传到任何 URL 和 运行 它通过上面的调试器,
<link rel="og:url" href="http://www.imdb.com/title/tt0117500/" />
和
<link property="og:url" content="http://www.imdb.com/title/tt0117500/" />
编辑 或者,按照评论中的建议
<link property="og:url" href="http://www.imdb.com/title/tt0117500/" />
将无法解析并 return 原来的 URL,而
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
正确解析并 return将 IMDb 上的 The Rock 内容改为。归根结底,语义很好,但工作代码更好。
对于 og:image
和 og:url
,因为它们有 URL,我可以将它们放在 link
标签而不是 meta
标签中,并且它更可取吗?
还有这两个标签的使用有什么区别w.r.t。 og:image
和 og:url
?
如果值为 URL.
,您 必须 使用link
而不是 meta
来自definition of the meta
element:
The
meta
element represents various kinds of metadata that cannot be expressed using the […]link
[…] elements.
但是 URL 当然可以使用 link
元素来表达(因为这是它的目的)。
如果您对 URL 值使用 meta
元素,RDFa 解析器将提取字符串值而不是 URL 值。这也意味着他们将无法对基 URL.
例子
假设这些元素在文档中 URL http://example.com/foo
:
<link property="schema:url" href="/bar" />
<meta property="schema:url" content="/bar" />
link
元素的值是 URL http://example.com/bar
。
meta
元素的值是字符串 /bar
.
然而,在 OGP 的情况下......
OGP’s documentation 中的示例使用 meta
元素作为 URL 值;没有包含 link
元素的示例。
虽然这意味着他们的许多示例都是无效的 HTML+RDFa,并且在这些情况下 RDFa 解析器将提取字符串而不是 URLs,
可能 Facebook(或任何其他消费者)实际上并未使用 RDFa 来解析内容,可能是这种情况他们不支持 link
元素。
注意:这些只是可能性,从其文档的质量来看。我没有 experience/insight,因为我不使用 Facebook。因此,如果您关心他们的 OGP-based 功能,您可能想使用 Facebook 对其进行测试。
我不知道 OGP 的其他主要消费者,所以这对你的情况来说可能不是问题,但如果你打算为 Facebook 实施它,
坚持元标记。
使用 open graph debugger 进行快速实时测试并摆弄 og:
标签,似乎 facebook 仅在将它们放在 <meta>
中时才识别它们。
试一试
如果您创建一个空 HTML 文件并在其 <head>
部分包含一个 og:url
标签,请将其上传到任何 URL 和 运行 它通过上面的调试器,
<link rel="og:url" href="http://www.imdb.com/title/tt0117500/" />
和
<link property="og:url" content="http://www.imdb.com/title/tt0117500/" />
编辑 或者,按照评论中的建议
<link property="og:url" href="http://www.imdb.com/title/tt0117500/" />
将无法解析并 return 原来的 URL,而
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
正确解析并 return将 IMDb 上的 The Rock 内容改为。归根结底,语义很好,但工作代码更好。