जहां तक मुझे पता है, Durandal 2.0 में आप ऐसा करने में सक्षम नहीं हैं। router
और history
प्लगइन इसका समर्थन नहीं करते हैं, और यह एक आसान फिक्स नहीं होगा क्योंकि कोड में कुछ स्थान हैं जो #
पर भरोसा करते हैं।
हालांकि, मुझे नहीं लगता कि यह आपके परिदृश्य में एक समस्या है। शायद आपको अपने आवेदन को क्रॉल करने की आवश्यकता से निपटने के तरीके को बदलने की जरूरत है।
आप अभी भी एप्लिकेशन के मुख्य HTML में मेटा टुकड़ा प्रकार का उल्लेख करके आपके आवेदन एसईओ #
का उपयोग कर संगत बनाने के कर सकते हैं:
<meta name="fragment" content="!">
तो तुम गूगल कह रहे हैं कि आपके लिंक #!
नहीं है, लेकिन कि एप्लिकेशन जावास्क्रिप्ट प्रतिपादन का उपयोग कर रहा है। फिर क्रॉलर के अनुरोधों में ?_escaped_fragment_
शामिल होगा।
तो आपके एप्लिकेशन में आप का उपयोग करेगा:
mysite.com/#myroute
और क्रॉलर का अनुरोध करेंगे:
mysite.com?_escaped_fragment_=myroute
चेक गूगल के documentation on crawling की धारा 3 मेटा टुकड़ा टैग के बारे में अधिक जानने के लिए।
सुझाव
आप पूरी तरह से इस तरह रूटर सक्रिय करने के द्वारा इस सुविधा मैं Durandal 2.0 में pushState उपयोग करने का सुझाव का लाभ लेना चाहते हैं: और भी मेटा टुकड़ा टैग सहित
router.activate({ pushState: true });
।
<meta name="fragment" content="!">
चीजें आप pushState का उपयोग कर यदि विचार करना चाहिए:
pushState उपयोग केवल यदि आप पुराने ब्राउज़रों का समर्थन करने के लिए योजना नहीं बना रहे।
आप अपने सर्वर साइड pushState तैयार करने की जरूरत है, इसका मतलब है कि जब सर्वर mysite.com/myroute
साथ अनुरोध किया जाता है ही जे एस एप्लिकेशन को वापस लौटाने और ग्राहक प्रक्रिया जाने क्वेरी स्ट्रिंग पैरामीटर में सक्षम होना चाहिए। उदाहरण के लिए, यदि आप ASP.NET का उपयोग कर रहे हैं तो आईआईएस यूआरएल रीराइट का उपयोग करके इसे हासिल किया जा सकता है। इस विषय के बारे में blog post अच्छा है।
उत्कृष्ट स्पष्ट रूप से लिखित प्रतिक्रिया। धन्यवाद, इससे मुझे बहुत मदद मिलेगी। – ccorrin
मेरे पास एक त्वरित सवाल है, मुझे लगता है कि अब यह काम कर रहा है, लेकिन जब मैं अपनी साइट को Google पर सबमिट करता हूं, और Google को लिंक देता हूं तो मुझे इसे http://mysite.com/# देना होगा! या सिर्फ http://mysite.com और google _escaped_fragment_ में जोड़ देंगे क्योंकि मेरे पास मेटा टैग में है? – ccorrin
मैं केवल mysite.com कहूंगा .. – margabit