मैं कई निर्देशों के साथ एक AngularJS ऐप पर काम कर रहा हूं। निर्देश के टेम्पलेट्स को एक अलग HTML फ़ाइल में संग्रहीत किया जाता है। इन टेम्पलेट को संपादित करते समय, मेरे ब्राउज़र को पुनः लोड करने के बाद किसी भी बदलाव का पता नहीं लगाता है और हमेशा कैश किए गए संस्करण का उपयोग करता है। स्रोत कोड में कोई अन्य परिवर्तन पता चला है और एक रीलोड का कारण बनता है।निर्देश के टेम्पलेट का बल पुनः लोड
मुझे लगता है कि समस्या कुछ हद तक $ टेम्पलेट कैश है जो टेम्पलेट लोड करते समय AngularJS द्वारा उपयोग किया जाता है।
$http.get(origAsyncDirective.templateUrl, {cache: $templateCache})
मैं सोच रहा हूँ अगर किसी और को इस तरह की समस्या थी और:
मैं AngularJS 1.0.2 के स्रोत कोड में क्या पाया लाइन 4317 जो compileTemplateUrl() का हिस्सा है से पीछा कर रहा है अगर AngularJS को कैश करने के लिए और कब नहीं कहने का कोई तरीका है।
यह वास्तव में है कि ब्राउज़ वेबसाइट पर अभी भी कैश्ड लोड उपयोगकर्ता के रूप में अपने स्थानीय क्रोम संस्करण के लिए क्रोम में कैशिंग निष्क्रिय करने के लिए मेरी समस्या का समाधान नहीं करता कारण संस्करण। –
(डबल टिप्पणी के लिए खेद है, लेकिन मैं इसे और संपादित नहीं कर सका ...) टेम्पलेट को फिर से लोड करने के लिए कैश को मजबूर करना हर बार मेरे लिए एक हैक जैसा दिखता है। लेकिन मुझे लगता है कि मेरे पास कोई विकल्प नहीं है। मेरे स्थानीय क्रोम संस्करण के लिए क्रोम में कैशिंग को अक्षम करना केवल मेरे लिए समस्या हल करता है।वेबसाइट ब्राउज़ करने वाले अन्य विज़िटर अभी भी कैश किए गए संस्करण को लोड करते हैं। उत्पादन मोड में अपडेट तब तक दिखाई नहीं देते जब तक कि उपयोगकर्ता अपने कैश को साफ़ नहीं करता। –
ठीक है, मैं अपने AngularJS परियोजनाओं के लिए Yeoman उपयोग करते हैं, तो तैनात फ़ाइलों उनके नाम पहले से जुड़ा हुआ हैश की है। यही कारण है कि कैश वास्तव में नहीं एक मुद्दा बना देता है, के रूप में अनुप्रयोग के लिए किसी भी बुनियादी बदलाव तुरंत पहचाने जाते हैं (फ़ाइल भिन्न नाम हैं)। परीक्षण के लिए, मैं यमन का भी उपयोग करता हूं, और यह सभी संपत्तियों के पुनः लोड को मजबूर करता है। –