schema.org website gives an example of a breadcrumb represented in JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "BreadcrumbList",
"itemListElement":
[
{
"@type": "ListItem",
"position": 1,
"item":
{
"@id": "https://example.com/dresses",
"name": "Dresses"
}
},
{
"@type": "ListItem",
"position": 2,
"item":
{
"@id": "https://example.com/dresses/real",
"name": "Real Dresses"
}
}
]
}
</script>
对我来说大部分内容都很清楚,但我并不完全确定此示例中提供的链接的语义。
我觉得令人困惑的是@id
属性。它们的值是URL,看起来这些应该导致由breadcrumb项链接到的实际网页。但是,该属性的名称表明URL实际上可能指向某些本体中的概念标识符。这是什么?
无标记标签包含一个未注释的HTML,表明我的第一个猜测是正确的,并且网址实际上会导致网页。
<ol>
<li>
<a href="https://example.com/dresses">Dresses</a>
</li>
<li>
<a href="https://example.com/dresses/real">Real Dresses</a>
</li>
</ol>
是这种情况,是否可以在此上下文中使用相对网址?
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "BreadcrumbList",
"itemListElement":
[
{
"@type": "ListItem",
"position": 1,
"item":
{
"@id": "https://dresses.com/dresses",
"name": "Dresses"
}
},
{
"@type": "ListItem",
"position": 2,
"item":
{
"@id": "/dresses/cocktail",
"name": "Cocktail Dresses"
}
}
]
}
</script>
答案 0 :(得分:1)
我有同样的问题,最终进行了我在https://webuniverse.io/relative-urls-in-structured-data/上记录的研究。关键部分是这样:
如果您将标记直接粘贴到Google验证器中,并且有一个 相对路径-验证者不知道它属于哪个域,并且 只需追加自己的域(https://search.google.com)。部署变更并进行测试后 真实网址,您会看到验证器将附加正确的域,因此您 绝对可以在结构化数据中使用相对网址。
答案 1 :(得分:1)
是这种情况,在这种情况下可以使用相对URL吗?
在GitLab上,我们也对此感到困惑(请参阅relevant issue),因为Google's Rich Results Test炸毁了相对URL,但是生产。
因此,我们尝试了一下。我们将一些带有相对URL的json+ld
推送到了生产环境中,并推送了一位工程师received an alert that the id field was invalid。
简短的回答-否,不能在json + ld中使用相对URL(但可以在标记中使用相对URL,请参见this comment),而Google显然希望使用绝对URL。如果它现在可以正常工作,则不能保证将来会成功。
答案 2 :(得分:0)
在我看来应该没问题。
检查:https://search.google.com/structured-data/testing-tool
具有相对网址的示例测试数据:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"item": {
"@id": "http://www.example.com/",
"name": "Home"
}
},{
"@type": "ListItem",
"position": 2,
"item": {
"@id": "/furniture/",
"name": "Furniture"
}
},{
"@type": "ListItem",
"position": 3,
"item": {
"@id": "/furniture/kitchen/",
"name": "Kitchen"
}
}]
}
</script>
更新 再次检查: 哦,谷歌添加域http://www.example.com/为结构数据测试工具的输出中没有绝对URL的项目。所以丢弃我的消息,我不确定是否支持相对路径,而是使用绝对路径。
答案 3 :(得分:0)
所有网址都应该是绝对的。 您可以使用将在相对URL中出错的官方测试工具https://search.google.com/structured-data/testing-tool/u/0/。