2015-12-31 4 views
13

इस पूरे नए मार्ग वाक्यविन्यास सच होने के लिए अच्छा लगा और अब मैं वास्तव में सोच रहा हूं। मैंने इसे काम करने की कोशिश छोड़ दी और यहां मैं देख रहा हूं कि कोणीय 2 पृष्ठ कार्यों में भी मुख्य उदाहरण नहीं है। यदि आप लाइव उदाहरण खोलते हैं और आप इसे क्लिक करने के लिए बस कूल काम करते हैं और आप देख सकते हैं कि यूआरएल में पथ बदल जाता है, लेकिन यह केवल स्ट्रिंग को बदल रहा है, पथ वास्तव में मौजूद नहीं है, अगर आप अपना यूआरएल कॉपी करते हैं और इसे भेजते हैं किसी के लिए उन्हें निम्न त्रुटि मिल जाएगी:क्या एचटीएमएल 5 मार्गों का उपयोग करते समय कोणीय 2 राउटर टूट गया है?

{ 
    "statusCode": 404, 
    "error": "Not Found" 
} 

नरक भले ही आप पृष्ठ को रीफ्रेश करते हैं तो आपको भी वही त्रुटि मिल जाएगी।

आप इस मुद्दे को इस URL खोलने के पुन: पेश करना चाहते हैं:,

https://angular.io/resources/live-examples/tutorial/ts/plnkr.html

लाइव पूर्वावलोकन के ऊपरी दाएँ भाग में बटन "एक अलग विंडो में पूर्वावलोकन लॉन्च" पर क्लिक करें यह लोड होने तक प्रतीक्षा पेज और आप URL कुछ करने के लिए है यह देखने के लिए जब:

http://run.plnkr.co/KMzM8hkaCyhlnf3b/dashboard

पेज को ताज़ा करने के लिए एक F5 करते हैं और आपको त्रुटि प्राप्त होगी।

क्या यह एक बग है, जिस तरह से इसे काम करना चाहिए, या कुछ ऐसा करने की कोशिश भी नहीं की? क्या वे पहले से ही एक खराब राउटर कार्यान्वयन के साथ शुरू कर रहे हैं या मैं पूरी तरह से खो गया हूं कि मैं इसे कैसे काम करने की कोशिश कर रहा हूं? कृपया सलाह दें !

मुझे अनुमान है कि मैं हैशटैग कार्यान्वयन का उपयोग कर बेहतर हूं।

उत्तर

13

असल में, यह सामान्य है कि आपके आवेदन को अपलोड करते समय आपके पास 404 त्रुटि है क्योंकि ब्राउजर के भीतर वास्तविक पता अद्यतन हो रहा है (और #/हैशबैंग दृष्टिकोण के बिना)। डिफ़ॉल्ट रूप से, कोणीय 2 में पुन: उपयोग करने के लिए HTML5 इतिहास का उपयोग किया जाता है।

यदि आप 404 त्रुटि नहीं चाहते हैं, तो आपको प्रत्येक मार्ग पथ के लिए index.html फ़ाइल की सेवा के लिए अपने सर्वर को अपडेट करने की आवश्यकता है।

यह लिंक आपको भी मदद कर सकता है: When I refresh my website I get a 404. This is with Angular2 and firebase

आशा है कि यह आप में मदद करता है, थियरी

+0

हाँ मैं अवांछित क्यों होता हूं, यही कारण है कि मैंने सोचा कि यह सच होना बहुत अच्छा था। मैंने जो नहीं किया है वह उस तरीके से कार्यक्षमता को डिफ़ॉल्ट करने के तरीके और इससे भी बदतर का उपयोग करने का उद्देश्य था।इंडेक्स को रीडायरेक्ट करने से यह समझ में आ सकता है कि यदि आपका ऐप केवल क्लाइंट साइड नहीं है और इसकी तलाश के लिए फ्रेमवर्क के इस रिश्तेदार का उपयोग करने वाले त्वरित ऐप्स के लिए नवीनतम दृष्टिकोण बैकएंड को लागू नहीं करता है, तो वे केवल सेवाओं का उपभोग करते हैं। मेरा अभी तक बैकएंड नहीं है। फिर भी यह एक वैध परिदृश्य/उपयोग केस है। मैं इसे आज़माउंगा और यदि यह काम करता है तो मैं आपका जवाब स्वीकार करूंगा, धन्यवाद =) – Langley

+0

हाँ ऐसा लगता है कि आप इसे एक विशिष्ट परिदृश्य और कॉन्फ़िगरेशन के तहत काम कर सकते हैं जिसे उन्होंने कभी निर्दिष्ट नहीं किया है। मुझे अभी भी नहीं लगता कि यह डिफ़ॉल्ट व्यवहार होना चाहिए या कम से कम आपको इस मुद्दे के बारे में बताना चाहिए। सहायता सीनियर के लिए धन्यवाद! इसने भी मदद की: http://stackoverflow.com/questions/31415052/angular-2-0-router-not-working-on-reloading-the-browser – Langley

+1

@ लैंगली एफवाईआई, यह अभी भी चर्चा के तहत एक खुला मुद्दा है 'कोणीय 2' रेपो में। https://github.com/angular/angular/issues/4735। ब्राउज़र में एचटीएमएल 5 के इतिहास.pushState() 'समर्थन शामिल होने से पहले I'' HashLocationStrategy' एक आवश्यक हैक था। 'PathLocationStrategy' आगे बढ़ने का सही दृष्टिकोण है, लेकिन हमें आगे के अंत देवताओं की सहायता करने के लिए बेहतर टूल की आवश्यकता है जिनके पास बहुत से बैक-एंड ज्ञान शुरू नहीं होते हैं। –

1

यह डिज़ाइन किया गया है (एचटीएमएल 5 द्वारा एंगुलर द्वारा पेश नहीं किया गया)। या तो HashLocationStrategy पर स्विच करें या ऐसे सर्वर का उपयोग करें जो जानता है कि ऐसे अनुरोधों को कैसे प्रबंधित करें (रीडायरेक्ट करें)। यह भी देखें https://github.com/angular/angular/issues/4735

+1

रूटर कोणीय द्वारा बनाया गया था, और वे एक तरह से इस मुद्दे के बारे में ज्यादा विवरण के बिना गाड़ी है कि यह की कार्यक्षमता डिफ़ॉल्ट। एचटीएमएल 5 के साथ उनके द्वारा उपयोग की जाने वाली विधि को जोड़ने के लिए इसका कोई लेना-देना नहीं है। – Langley

+1

बेहतर दस्तावेज हमेशा एक अच्छी बात है, लेकिन यह एचटीएमएल 5 के डिजाइन द्वारा है और ** ** ** कोणीय विशिष्ट नहीं है। कोणीय के लिए सभी एमडीएन दस्तावेज़ जोड़ने के लिए यह व्यर्थ होगा। –

+0

तथ्य यह है कि ब्राउज़र ने HTML spec के आधार पर उस फ़ंक्शन को कार्यान्वित किया है, इसका उपयोग करके फ्रेमवर्क के साथ कुछ भी नहीं करना है और इसे गलत तरीके से उपयोग करने का भी अधिक प्रस्ताव है। – Langley

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