对于og:image
和og:url
,因为它们有网址,我可以将它们放在link
标记而不是meta
标记中,是否更可取?
使用这两个标签w.r.t也有什么不同。 og:image
和og:url
?
答案 0 :(得分:1)
我不了解OGP的其他主要消费者,所以这对您的案例可能不是问题,但如果您打算为Facebook实施,
使用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’s documentation中的示例使用meta
元素作为网址值;没有link
元素的示例。
虽然这意味着他们的许多示例都是无效的HTML + RDFa,而RDFa解析器会在这些情况下提取字符串而不是URL,
可能是Facebook(或任何其他消费者)实际上没有使用RDFa来解析内容的情况,可能是他们不支持的情况link
元素。
注意:从文档质量来看,这些只是可能性。我没有任何经验/见解,因为我不使用Facebook。因此,如果您关心其基于OGP的功能,您可能希望使用Facebook进行测试。