我希望在网站上使用JSON-LD作为架构。 (架构意味着schema.org数据。)我知道如何编写数据但我的问题是我的代码中是否有一个首选位置来插入这些数据?换句话说,JSON-LD应该始终位于head
,body
等吗?
答案 0 :(得分:70)
数据可以放在任何地方。来自Google's documentation:
包含在
<script type="application/ld+json">
内的数据...... 如下例所示,</script>
标记可以放在中 显示该事件的页面的<HEAD>
或<BODY>
区域。
您还可以使用data dynamically fetched using AJAX:
在初始页面加载时运行的Javascript插入的JSON-LD标记 可以被认可。
更新(在评论中Antony指出)
[JSON-LD是一种]嵌入在页面头部或主体中的标记中的JavaScript符号... Google可以在将JSON-LD数据动态注入页面内容时读取它们,例如通过内容管理系统中的JavaScript代码或嵌入式小部件。
答案 1 :(得分:55)
从Schema.org,JSON-LD和可能提取的RDF的角度来看,它无关紧要。无论从文档中的哪个位置提取,数据都是相同的。
从HTML5的角度来看:
如果是关于您网页的数据(或此页面的内容),您可以将script
元素放在head
中,作为head
element
[...]表示文档的元数据集合
但是当然使用body
代替它并不是错的。只是您不应该将head
用于与您的网页无关的数据或其代表的内容。
答案 2 :(得分:-1)
如果您选择插入<body>
,则必须这样做:
<p class="companyName" vocab="http://schema.org/" resource="#manu" typeof="Organization">
<span property="name">ShopTech Media</span>
<img property="logo" src="https://yoursite.com/logo.png" />
<a property="url" href="http://www.yoursite.com">Home page</a>
</p>
<p typeof="contactPoint">
<span property="contactType">Customer Service:</span>
<span property="telephone">+45-xxxxxxx</span>
</p>
下面是用于在<head>
标签中插入结构化数据的脚本代码
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"url": "http://www.shoptech.media",
"logo": "https://shoptech.media/wp-content/uploads/2019/08/cropped-logo-sm.png",
"contactPoint": [{
"@type": "ContactPoint",
"telephone": "+45-65711114",
"contactType": "customer service"
}]
}
</script>