JSON-LD 必须嵌入吗?

Does JSON-LD have to be embedded?

我们目前正在使用 Microdata 格式向搜索引擎公开数据,我们正在考虑公开更多信息以便能够支持一些更高级的 Google 搜索功能。当我在各个字段中工作时,我发现我需要我们当前异步加载的信息,因此它不是初始响应的一部分。

JSON-LD 看起来像 Google 喜欢的,但我看到的所有示例都将它嵌入到页面中。您能否将 link 添加到 JS 文件,以便将其作为单独的调用加载?像

<script type="application/ld+json" src="/myid123/jsonld.js"></script>

如果您使用 script element 作为数据块,"the src attribute must not be specified"。

如果script元素用作数据块,它必须是"used to include dynamic scripts"。但是 JSON-LD 文档不是动态脚本。

要链接到另一个资源,就像使用外部样式表或网站图标一样,您可以使用 head 中的 link 元素(或相应的 HTTP header) :

<link href="/myid123/jsonld.js" rel="alternate" type="application/ld+json" />

原则上,消费者可以遵循此引用(可能仅当指定了某个 link type 时),并使用数据,就像他们使用嵌入式 JSON-LD、微数据或RDFa。

但是,消费者当然 没有 这样做,而且很多人可能没有。
Google 搜索并没有声称支持它以 JSON-LD 格式使用 Schema.org。然而,他们声称 support "dynamically injected" JSON-LD data blocks.