应该og:image和og:url放入<meta />或<link />?

时间:2017-01-28 22:44:32

标签: html facebook-opengraph opengraph meta-tags rdfa

对于og:imageog:url,因为它们有网址,我可以将它们放在link标记而不是meta标记中,是否更可取?

使用这两个标签w.r.t也有什么不同。 og:imageog:url

2 个答案:

答案 0 :(得分:1)

我不了解OGP的其他主要消费者,所以这对您的案例可能不是问题,但如果您打算为Facebook实施,

坚持使用meta标签。

使用open graph debugger进行快速实时测试并摆弄og:代码,看来facebook只会识别它们,如果它们放在<meta> s中。

试一试

如果您在og:url部分中创建一个包含单个<head>标记的空HTML文件,请将其上传到任意网址并通过上面的调试程序运行

<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/" />

将无法解析并返回原始网址。

<meta property="og:url" content="http://www.imdb.com/title/tt0117500/" /> 

正确解析并在IMDb上返回The Rock的内容。在一天结束时,语义很好,但工作代码更好。

答案 1 :(得分:0)

如果值为网址,则必须使用link而不是meta

来自definition of the meta element

  

meta元素表示无法使用[...] link [...]元素表示的各种元数据。

但是,URL当然可以使用link元素表示(因为它的目的)。

如果对URL值使用meta元素,则RDFa解析器将提取字符串值而不是URL值。这也意味着他们无法对基本URL应用相对引用。

实施例

假设这些元素位于包含网址http://example.com/foo的文档中:

<link property="schema:url"    href="/bar" />
<meta property="schema:url" content="/bar" />

link元素的值是网址http://example.com/bar meta元素的值是字符串/bar

但是,在OGP的情况下......

OGP’s documentation中的示例使用meta元素作为网址值;没有link元素的示例。

虽然这意味着他们的许多示例都是无效的HTML + RDFa,而RDFa解析器会在这些情况下提取字符串而不是URL, 可能是Facebook(或任何其他消费者)实际上没有使用RDFa来解析内容的情况,可能是他们不支持的情况link元素。

注意:从文档质量来看,这些只是可能性。我没有任何经验/见解,因为我不使用Facebook。因此,如果您关心其基于OGP的功能,您可能希望使用Facebook进行测试。