3

一段时间以来,我一直在系统地使用双斜杠、独立于协议的 URL 版本,在 HTML(用于href锚点和src图像)和 JS(用于 XHR)中。今天我一直想知道这是否可以在 OpenGraph 标签上实现。

目前我有这个:

<meta property="og:image" content="http://static.example.com/image.png">
<meta property="og:url" content="http://example.com">

我一直想知道使用以下内容会产生什么效果:

<meta property="og:image" content="//static.example.com/image.png">
<meta property="og:url" content="//example.com">
  • 这是规范允许的吗?
  • (主要)实现是否允许这样做?
  • 有没有我没有看到的明显问题?
  • 我在想这完全错了吗?
  • 有没有人这样做过或尝试过这个?

好吧,这有点太多的问题,但你可以看到我要去哪里:我(和其他可能会遇到这个问题的开发人员)应该使用显式协议还是可以将它们留给属性og:*

4

2 回答 2

3

通过将这些meta带有属性的元素添加property到您的页面,您正在使用RDFa(它是RDF的序列化格式)。所以你正在参与语义网。

语义网的基本思想是使用 URI 来描述由 URI 表示的事物。一些 URI 代表网页(我们都知道这些),而另一些 URI 代表现实世界或抽象事物(如JRR Tolkien人、的概念或埃菲尔铁塔)。(有关如何区分这些,请参阅此答案。)

例如,这个 URI 代表物理世界的建筑物(不是关于该建筑物的网页):
http://dbpedia.org/resource/Eiffel_Tower

HTTPS 变体 ( https://dbpedia.org/resource/Eiffel_Tower) 将是一个完全不同的 URI,原则上,它可以用于不相关的东西,比如足球等。对于 RDF(与 Web 中的常见做法相反),HTTP URI 与其对应的 HTTPS 之间没有关系。

因此,当您提供有关这两个 URI 的 RDF 语句时,(起初)并不清楚两者指的是同一事物。当您为两个 URI 使用唯一对象时,它们可以映射为相同的意思。您还可以使用 OWL (→ owl:sameAs) 显式指定两个 URI 表示同一事物。

所以,这不是被禁止或错误的,但我建议只使用你的一个“同义”URI 来表示页面/事物。其他人可能想用你的 URI(→ things/pages)来做 RDF 语句,所以最好他们都使用相同的。

于 2013-04-19T16:57:58.783 回答
-1

不,这是错误的。为什么?Facebook 解析器不知道协议如何在站点上使用。

于 2019-11-08T09:20:17.177 回答