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.