2014-07-10 3 views
7

मैं अपने कोणीय अनुप्रयोग पर कुछ कैश बस्टिंग को इस तरह से कार्यान्वित करने की कोशिश कर रहा हूं कि यह अभी भी कैशिंग को अनुमति देगा, लेकिन जब भी हम उत्पादन के लिए नए कोड को दबाएंगे तो इसे तोड़ दें। मेरे सेटअप में अब तक मेरी समेकित कोणीय app.js फ़ाइल के माध्यम से खोदने के लिए ग्रंथ कैश-ब्रेकर https://www.npmjs.org/package/grunt-cache-breaker का उपयोग करना शामिल है और .html फ़ाइल एक्सटेंशन में समाप्त होने वाली किसी भी स्ट्रिंग पर क्वेरी पैराम संलग्न करें। मैं यह भी किसी भी टेम्पलेट फाइलों के लिए करता हूं जो मेरे पास एनजी-शामिल का उपयोग कर रहे हैं। यह बनाता है कि एक जटिलता यह है कि अब मुझे अपनी टेम्पलेट फ़ाइलों को एक dist/निर्देशिका में कॉपी करने की आवश्यकता है, इसलिए मैं सुरक्षित रूप से कैश-बस्टेड संस्करणों को गिटिग्नोर कर सकता हूं और जब भी कैश को दबाया जाता है तो सभी टेम्पलेट्स को प्रतिबद्ध नहीं करना पड़ता है (और संघर्ष बनाते हैं) ।क्या यह कोणीय में टेम्पलेट कैश बस्टिंग के लिए एक अच्छी विधि है?

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

अन्य इस मुद्दे को कैसे नेविगेट करते हैं?

उत्तर

9

मुझे लगता है कि एक लोकप्रिय दृष्टिकोण एनजी-टेम्पलेट्स (grunt plugin के साथ) का उपयोग करने के लिए एक जेएस फ़ाइल जेनरेट करने के लिए है जो आपके सभी टेम्पलेट्स को प्री-कैश करता है। फिर जेएस फ़ाइल संस्करण के लिए एक संपत्ति संस्करण कार्य के साथ usemin ग्रंट वर्कफ़्लो का उपयोग करें।

+0

+1 संपत्ति संस्करण – core

+0

मुझे अंततः इसमें खोदने के लिए कुछ समय मिला। मैंने कोणीय कैश टेम्पलेट्स के बारे में बहुत कुछ सीखा। यह पहले से ही थोड़ी सी चीज का उपयोग कर एक परियोजना पर समाधान लागू करने के लिए एक बहुत अच्छा और सरल था। और यह कैशिंग मुद्दों को हल करने के अलावा कुछ प्रदर्शन सुधार लाया। पारितोषिक के लिए धन्यवाद। – Constellates

+0

@mfollett @ कॉन्स्टेलेट्स, [angularjs-how-to-clear-routeproviders-caches-of-templateurl] के अनुसार [http://stackoverflow.com/questions/20284976/angularjs-how-to-clear-routeproviders-caches- ऑफ टेम्पलेटर), अगर हम सीधे '$ रूटप्रोवाइडर' का उपयोग करते हैं, तो हमें पहले ही '$ टेम्पलेट कैश' मिलता है। तो मुझे लगता है, 'ग्रंट-कोणीय-टेम्पलेट्स' की आवश्यकता नहीं है। केवल 'usemin' पर्याप्त हो सकता है। मैं गलत हो सकता हूं, लेकिन आपने जो निर्दिष्ट किया है उस पर विश्लेषण करने की कोशिश कर रहा हूं। –

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