14

के बजाय यूआरएल में हाल ही में मैंने देखा है कि एक कोणीय जेएस ऐप में ngRoute मॉड्यूल का उपयोग करते समय, रूट में #! यूआरएल में है, जो पहले # था।कोणीय मार्गों में # शामिल हैं! #

उदाहरण के लिए, www.webiste.com/#/loginwww.website.com/#!/login

हो जाता है मैं html5Mode सक्षम है और यह भी को निष्क्रिय requireBase जो कोड का उपयोग कर एक समग्र रूप से आधार को हटा करने के लिए है, www.website.com/login को

$locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
}); 

और URL परिवर्तन जो ठीक काम करता है लेकिन भ्रामक है और यह नहीं है कि कोणीय एसपीए यूआरएल कैसा दिखता है।

यदि मैं html5Mode सक्षम नहीं करता हूं, तो URL एन्कोड किया गया है और मैं इसके आसपास नहीं जा सकता। तो www.website.com/#/loginwww.website.com/#!/#%2Flogin बन गया (बाद में / पर ध्यान दें %2F के रूप में एन्कोड किया गया है)।

क्या यह कुछ विशिष्ट उद्देश्यों के लिए डेवलपर्स द्वारा लागू एक बदलाव है? क्या फर्क पड़ता है? इसे काम करने के लिए मुझे अपने ऐप में क्या बदलाव करने की ज़रूरत है? क्या मुझसे कुछ गलत हो रही है?

Github मुद्दा: https://github.com/angular/angular.js/issues/15547

+0

उपयोग को सक्षम करने की बात के खिलाफ जाता है html5Mode ... तो क्यों आप हैश बिल्कुल प्रयोग कर रहे हैं? हैश्रेफिक्स ने उस – charlietfl

+2

के बारे में दस्तावेज़ों को रूटिंग में कहीं भी पढ़ा है (app.js में हो सकता है), आप इस "$ locationProvider.hashPrefix ('!') की तरह उपसर्ग सेट कर रहे हैं;"। हटाना "!" –

+0

मैं कहीं भी ऐसा कुछ भी सेट नहीं कर रहा हूं। मैंने यूआरएल में '/' (स्लेश) के एन्कोडिंग से छुटकारा पाने के लिए 'html5Mode' को सक्षम किया। –

उत्तर

4

यह हैश धमाके कहा जाता है।

थोड़ी देर के लिए ट्विटर एक ही चीज़ का उपयोग कर रहा था। यह AJAX कॉल की अनुमति देता है और खोज इंजन को "असली" पथ का उपयोग किये बिना आपके पथ को जानने देता है। हालांकि इसे अप्रचलित माना जाता है।

https://developers.google.com/webmasters/ajax-crawling/docs/getting-started

उस के बारे में एक और stackoverflow जवाब है: यूआरएल के दशक में हैश के

Doing links like Twitter, Hash-Bang #! URL's

+0

में पेश किया गया एक तोड़ने वाला परिवर्तन है, मैं अचानक इन मुद्दों का सामना क्यों कर रहा हूं? मैं एक साल के लिए छोटे कोणीय ऐप्स पर काम कर रहा हूं और इन मुद्दों में कभी भाग नहीं पाया। मेरे लिए '#' ठीक काम किया। पुराने ऐप्स अभी भी ठीक काम कर रहे हैं, यह मेरे द्वारा बनाए गए हर नए ऐप के साथ समस्या है। –

+0

'www.website.com/login' शायद यह है कि आप इसे अधिक खोज इंजन अनुकूल बनाना चाहते हैं, हालांकि। लेकिन मुझे पूरा यकीन नहीं है कि यह अचानक अचानक बैंग (!) क्यों जोड़ देगा। क्या आपने हाल ही में संस्करण अपडेट किए हैं? शायद यह सुनिश्चित करने के लिए कि यह डिफ़ॉल्ट रूप से ऐसा करता है, स्क्रैच से शुरू किया गया एक छोटा सा नमूना आज़माएं? –

+1

हां महोदय, भी कोशिश की। मॉड्यूल के लिए एक अद्यतन की तरह लग रहा है। –

संबंधित मुद्दे