是否必须嵌入 JSON-LD?
Posted
技术标签:
【中文标题】是否必须嵌入 JSON-LD?【英文标题】:Does JSON-LD have to be embedded? 【发布时间】:2015-09-01 02:19:25 【问题描述】:我们目前正在使用微数据格式向搜索引擎公开数据,并且我们正在考虑公开更多信息以支持一些更高级的 Google 搜索功能。当我在字段中工作时,我发现我需要我们当前异步加载的信息,因此它不是初始响应的一部分。
JSON-LD 看起来像是 Google 喜欢的,但我看到的所有示例都将它嵌入到页面中。你能有一个 JS 文件的链接,以便它作为单独的调用加载吗?类似的东西
<script type="application/ld+json" src="/myid123/jsonld.js"></script>
【问题讨论】:
How to externalize json-ld and include in html doc的可能重复 【参考方案1】:如果您使用script
element 作为数据块,“不得指定src
属性”。
如果script
元素不用作数据块,则它必须“用于包含动态脚本”。但是 JSON-LD 文档不是动态脚本。
要链接到另一个资源,就像使用外部样式表或网站图标一样,您可以使用head
中的link
元素(或相应的HTTP 标头):
<link href="/myid123/jsonld.js" rel="alternate" type="application/ld+json" />
原则上,消费者可以遵循此引用(可能仅在指定了某个 link type 时),并使用数据,就像他们使用嵌入式 JSON-LD、Microdata 或 RDFa 一样。
但是,消费者当然没有必须这样做,而且许多人可能不会这样做。 谷歌搜索尤其不声称支持它以 JSON-LD 格式消费 Schema.org。但是,他们声称support "dynamically injected" JSON-LD data blocks。
【讨论】:
抱歉复制和粘贴错误,链接就是我的意思。但如果谷歌支持通过 JS 动态加载,那么这也可以。谷歌是否需要某种指示来期望动态加载 JSON-LD? 这是什么意思? Google 会抓取 引用的我的 json-ld 吗?还是我需要将它嵌入到我的 @nimo23:根据他们的文档,他们只支持script
中的 JSON-LD,而不支持 link
。
好的,谢谢。所以根据***.com/questions/26892397/…,我必须使用脚本标签并将其内联。不幸的是,即使“@context”也不能与谷歌搜索一起使用。
很遗憾google还不支持外部JSON-LD文档,因为我们需要把页面做大只是为了帮助搜索引擎;用户不关心页面中隐藏的东西,因为他/她在掠夺它。以上是关于是否必须嵌入 JSON-LD?的主要内容,如果未能解决你的问题,请参考以下文章