Schema.org işaretlemesini JSON-LD olarak kullanmak için kodda ideal yer nerede?


9

JSON-LD kullanan Schema.org işaretlemesini koymak için en iyi yer neresidir? Bazıları içeride önerilir, <head>ancak komut dosyaları da satır içi çalışır. Bir MVC'de onları kontrolörler ile aynı kapsama koymak daha kolay olurdu, bu da elemanlarının yanında satır içi anlamına gelir. Ancak JSON-LD büyük bir komut dosyası / yığın olarak "daha iyi çalışabilir" <head>. Sanırım ideal konumdan emin değilim.

Örnek kırıntıları olacaktır - sadece JSON-LD betiğini kırıntıların işaretlemesinden önce mi koymalıyım, yoksa modelleri oluşturan alanda tanımlamak için (tekrar) modelleri yüklerken tüm zorluklardan mı geçmeliyim <head>? Bir performans isabeti gibi görünüyor, ancak spec için buna değerse, yapılması gerekiyor.

JSON-LD'deki bir Örgüt örneği (bu <head>zaten olurdu ):

<script type="application/ld+json"> {
"@context" : "http://schema.org",
"@type" : "Organization",
"name" : "A Huge Corporation",
"url" : "http://www.example.com",
"logo" : "http://www.example.com/huge-corporation.png",
"founder" : "Humanz",
"foundingDate" : "1268",
"sameAs" : "http://plus.google.com/111111111111111111111",
"contactPoint" : {
    "@type" : "ContactPoint",
    "contactType" : "Customer Service",
    "telephone" : "+1-888-888-8888",
    "faxNumber" : "+1-777-777-7777",
    "contactOption" : "TollFree",
    "areaServed" : "US",
    "availableLanguage" : "English",
    "email" : "dude@example.com"
},
"hasPos" : {
    "@type" : "Place",
    "name" : "The Branch or Store",
    "photo" : "http://www.example.com/store.png",
    "hasMap" : {
        "@type" : "Map",
        "url" : "https://maps.google.com/maps?q=feed_me_a_map"
    },
    "address" : {
        "@type" : "PostalAddress",
        "name" : "The Branch or Store",
        "streetAddress" : "1547 Main Street",
        "addressLocality" : "Beverly Hills",
        "addressRegion" : "CA",
        "postalCode" : "90210",
        "addressCountry" : "United States"
    }
}}
</script>

Ve burada kırıntı snippet'i (şu anda başka bir kapsamda, görsel olarak oluşturulmuş kırıntıların yakınındaki sayfada daha aşağıda yer alıyor). Eğer iş buna değerse, bunu kafasından almak güzel olurdu:

<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" : "http:www.example.com/widgets",
        "name" : "Widgets"
        }
    },
    {
    "@type" : "ListItem",
    "position" : 3,
    "item" : {
        "@id" : "http:www.example.com/widgets/green",
        "name" : "Green Widgets"
        }
    }
]}
</script>

Yanıtlar:


8

JSON-LD umursamıyor . Bu mantıklıdır, çünkü veriler aynıdır, belgede nerede olursa olsun çıkarılır.

HTML açısından bakıldığında, bunu yalnızca headJSON-LD web sayfanızla ilgili veya web sayfanızın neyi temsil ettiği konusunda eklemelisiniz , çünkü headöğe belge için meta veri içerdiği tanımlanmıştır . Ancak bir şeyin meta veri olup olmadığını tanımlamak her zaman kolay değildir; Bunun için fazla endişelenmezdim.


<head> düşünce hakkında mantıklı - prob orada organizasyon bırakarak sona erecek .... Bence "meta" olarak yeterli sayar onun her tek sayfada ve söylenebilir başına bir "etiket" sağlar.
— dhaupin

ve head, sayfanın oluşturulmasını engelleyen başka bir kod parçası değil mi? Bundan önce </body>daha iyi olabileceğini merak ediyordum
— João Pimentel Ferreira

1
@ JoãoPimentelFerreira: Ben engellememesini beklerim, çünkü bu bir veri bloğu değil, bir komut dosyasıdır (her ikisi de scriptelemanı kullanır , ancak teknik olarak farklı durumlardır). Tarayıcılar herhangi bir veri bloğunu tamamen göz ardı edebilir. Ancak tarayıcıların gerçekte ne yaptığını bilmiyorum.
— unor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.