2016-02-12 8 views
7

है, क्या HTML में script इनलाइन के बिना JSON-LD का उपयोग करने के लिए वैसे भी है, लेकिन फिर भी इसे खोजने के लिए Google (& अन्य) मकड़ियों को प्राप्त करें? चारों ओर देखकर मैंने कुछ विवादित जानकारी देखी है।क्या JSON-LD स्कीमा का उपयोग करने के लिए वैसे भी

यदि यह JSON-LD फ़ाइल था:

<script type="application/ld+json"> 
    { 
     "@context" : "http://schema.org", 
     "@type" : "WebSite", 
     "name" : "Example Site", 
     "alternateName" : "example", 
     "description" : "Welcome to this WebSite", 
     "headline" : "Welcome to Website", 
     "logo" : "https://example.com/public/images/logo.png", 
     "url" : "https://example.com/" 
    } 
    </script> 

और मैं HTML के head में यह है:

<script src="/public/json-ld.json" type="application/ld+json"></script> 

संपादित करें: मैं भी कोशिश की है:

<link href="/public/json-ld.json" rel="alternate" type="application/ld+" /> 

Google मकड़ियों को यह याद आती है और इसलिए परीक्षण उपकरण तब तक करता है जब तक कि मैं इसे सीधे फ़ाइल पर इंगित नहीं करता। मैं सीएसपी में असुरक्षित इनलाइन के आसपास काम करने की कोशिश कर रहा हूं। और only thing I can find is this, जो क्रोम में काम करेगा लेकिन हर दूसरे ब्राउज़र पर कंसोल त्रुटियों को फायर नहीं करना चाहता। इसके अलावा, मुझे पेज संरचना से बाहर किए गए Schema.org डेटा के विचार को पसंद है। Google वेबमास्टर टूल्स की सहायता के लिए साइटमैप में जेएसओएन-एलडी जोड़ना होगा?

माफी, जेएसओएन-एलडी के लिए कुल नोब और ईमेल दस्तावेज (यह एक साइट के लिए होगा) या पुराने दस्तावेज में समाप्त हो रहा है।

+0

की संभावित डुप्लिकेट [करता है JSON-LD एम्बेड करने के लिए है?] (Http://stackoverflow.com/questions/30864619/does-json-ld-have-to-be-embedded) – unor

+0

की कोशिश की है यह, और यह अभी भी उठाया नहीं जा रहा है। मेरा सबसे अच्छा अनुमान है कि वेबसाइटों के लिए JSON-LD बाहरी फ़ाइलों में अभी तक समर्थित नहीं है। – Cynic

उत्तर

0

सच है, इसे बाहरी नहीं बनाया जा सकता है और यह इनलाइन समर्थित नहीं है, लेकिन आप अभी भी एक जावास्क्रिप्ट फ़ाइल के माध्यम से इसे DOM में इंजेक्शन करके प्राप्त कर सकते हैं।

नोट: मैं स्वच्छता के लिए एक सरणी का उपयोग कर रहा हूं, इसलिए मैं सभी संरचित डेटा तत्वों को विभाजित कर सकता हूं और उनमें से एक अनंत राशि जोड़ सकता हूं। मेरे पास मेरी वेबसाइट पर इस कोड का एक और जटिल संस्करण है और वास्तव में एक बाहरी सर्वर पक्ष फ़ाइल को जावास्क्रिप्ट फ़ाइल के रूप में मास्कराइडिंग करता है।

एक हाँ Google खोज बॉट इसे समझता है। इसे फिर से क्रॉल करने के लिए वेबमास्टर टूल्स को पंजीकृत करने और उपयोग करने के लिए कुछ दिन लग सकते हैं, जो JSON-LD डेटा के रीफ्रेश को लागू नहीं करता है - ऐसा लगता है कि आपको बस प्रतीक्षा करनी है।

var structuredData = { 
    schema: { 
     corporation: { 
      '@context':   'http://schema.org', 
      '@type':   'Corporation', 
      'name':    'Acme', 
      'url':    'https://acme.com', 
      'contactPoint': 
      { 
       '@type':  'ContactPoint', 
       'telephone': '+1-1234-567-890', 
       'contactType': 'customer service', 
       'areaServed': 'US' 
      } 
     }, 
     service: { 
      '@context':   'http://schema.org/', 
      '@type':   'Service', 
      'name':    'Code optimization', 
      'serviceOutput' : 'Externalized json', 
      'description':  'Inline json to externalized json' 
     }, 
    }, 
    init: function() { 
     var g = []; 
     var sd = structuredData; 
     g.push(sd.schema.corporation); 
     g.push(sd.schema.service); 
     //etc. 

     var o = document.createElement('script'); 
     o.type = 'application/ld+json'; 
     o.innerHTML = JSON.stringify(g); 
     var d = document; (d.head || d.body).appendChild(o); 
    } 
} 
structuredData.init(); 
संबंधित मुद्दे