是否必须嵌入 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?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Xamarin Forms ContentView 中嵌入 Android.VideoView

嵌入式表单上的 CSRF 问题

全局变量在嵌入式系统编程(C)中是否令人不悦?

JavaFX 可以调用和嵌入 OCX 组件吗

嵌入式开发:C++在深度嵌入式系统中的应用

嵌入式 PostgreSQL for Java JUnit 测试