og:image 和 og:url 应该输入 <meta> 还是 <link>?

Should og:image and og:url put in <meta> or <link>?

对于 og:imageog:url,因为它们有 URL,我可以将它们放在 link 标签而不是 meta 标签中,并且它更可取吗?

还有这两个标签的使用有什么区别w.r.t。 og:imageog: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 内容改为。归根结底,语义很好,但工作代码更好。