我已经看到有关如何最好地实现Open Graph命名空间的相互矛盾的信息 . 具体来说,Open Graph网站使用了一些不同的方法,而Facebook Open Graph示例则使用其他方法 .
Open Graph网站示例(使用HTML前缀属性):
<html prefix="og: http://ogp.me/ns#">
Open Graph网站源代码(使用HTML XMLNS属性):
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#">
Facebook Open Graph文档(使用HEAD前缀属性):
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
Facebook Open Graph文档#2(使用HTML XMLNS属性):
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#"
xmlns:fb="https://www.facebook.com/2008/fbml">
什么是推荐的方法或甚至不重要?
5 回答
它们都是等价的,都会起作用 .
使用前缀,因为它是新推荐的方式,并且字符较少 .
我会将所有文档更新为前缀 .
我试着按照@Paul Tarjan的回答在头部使用前缀 . 但是I got some Internet Explorer 8 issue . 所以最后我仍然使用xmlns方式为fb命名空间:
有最好的验证方法 .
prefix / xmlns属性对于定义short-hand非常有用 . rdf来自xml谱系,因此xmlns表示法应该独立于doctype细节而工作 . rdfa扩展html,其属性包括http://www.w3.org/TR/rdfa-in-html/#extensions-to-the-html5-syntax给出的前缀 . 但是,这需要遵守http://dev.w3.org/html5/rdfa/rdfa-module.html此外,还提到了其中提到的rel = "profile"的工具支持 . 到那时,选择是使用较旧的doctypes,还是手动放置rdf:用于验证目的或等待验证器和此类工具赶上 . 声明的正确位置是任何元素开始标记,它是使用简写符号的地方的祖先 . 特别是对于og前缀的情况,它由RDFa核心http://www.w3.org/2011/rdfa-context/rdfa-1.1.html的初始上下文预定义,因此对于较新的doctypes完全跳过它是没有问题的 . 特别是对于html5,RDFa初始上下文http://www.w3.org/2011/rdfa-context/html-rdfa-1.1仅在前面提到的RDFa初始上下文之后加载 .
它甚至不重要 . RDFa核心初始上下文recognizes
og
作为广泛使用的词汇前缀:强调增加了清晰度 .
因此,您无需在HTML文档中添加命名空间 . 更多信息here .