के बजाय यूआरएल में हाल ही में मैंने देखा है कि एक कोणीय जेएस ऐप में ngRoute
मॉड्यूल का उपयोग करते समय, रूट में #!
यूआरएल में है, जो पहले #
था।कोणीय मार्गों में # शामिल हैं! #
उदाहरण के लिए, www.webiste.com/#/login
www.website.com/#!/login
हो जाता है मैं html5Mode
सक्षम है और यह भी को निष्क्रिय requireBase
जो कोड का उपयोग कर एक समग्र रूप से आधार को हटा करने के लिए है, www.website.com/login
को
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
और URL परिवर्तन जो ठीक काम करता है लेकिन भ्रामक है और यह नहीं है कि कोणीय एसपीए यूआरएल कैसा दिखता है।
यदि मैं html5Mode
सक्षम नहीं करता हूं, तो URL एन्कोड किया गया है और मैं इसके आसपास नहीं जा सकता। तो www.website.com/#/login
www.website.com/#!/#%2Flogin
बन गया (बाद में /
पर ध्यान दें %2F
के रूप में एन्कोड किया गया है)।
क्या यह कुछ विशिष्ट उद्देश्यों के लिए डेवलपर्स द्वारा लागू एक बदलाव है? क्या फर्क पड़ता है? इसे काम करने के लिए मुझे अपने ऐप में क्या बदलाव करने की ज़रूरत है? क्या मुझसे कुछ गलत हो रही है?
Github मुद्दा: https://github.com/angular/angular.js/issues/15547
उपयोग को सक्षम करने की बात के खिलाफ जाता है html5Mode ... तो क्यों आप हैश बिल्कुल प्रयोग कर रहे हैं? हैश्रेफिक्स ने उस – charlietfl
के बारे में दस्तावेज़ों को रूटिंग में कहीं भी पढ़ा है (app.js में हो सकता है), आप इस "$ locationProvider.hashPrefix ('!') की तरह उपसर्ग सेट कर रहे हैं;"। हटाना "!" –
मैं कहीं भी ऐसा कुछ भी सेट नहीं कर रहा हूं। मैंने यूआरएल में '/' (स्लेश) के एन्कोडिंग से छुटकारा पाने के लिए 'html5Mode' को सक्षम किया। –