2008-09-22 6 views
11

जब हम नई साइट विकसित कर रहे हैं या नए कोड में परिवर्तनों का परीक्षण कर रहे हैं जिसमें नए कोड के बाद सीएसएस शामिल है और कोई बदलावों की जांच करने के लिए जाता है तो वे हमेशा पुराने सीएसएस के कैश किए गए संस्करण को देखते हैं। यह परीक्षण में बहुत सी समस्याएं पैदा कर रहा है क्योंकि लोग कभी भी सुनिश्चित नहीं हैं कि उनके पास स्क्रीन पर नवीनतम सीएसएस है (मुझे पता है कि रीफ्रेश पर क्लिक करें और इस कैश को साफ़ कर दें लेकिन मैं अंतिम उपयोगकर्ताओं को ऐसा करने की उम्मीद नहीं कर सकता)। मेरे संभावित समाधान क्या हैं?आईआईएस सीएसएस कैशिंग

उत्तर

9

यदि आप स्थैतिक फ़ाइलों (या क्वेरी स्ट्रिंग के लिए कोई फर्क नहीं पड़ता) से अपने सीएसएस की सेवा कर रहे हैं, तो यह सुनिश्चित करने के लिए कि ब्राउजर एक नया अनुरोध करता है, अलग-अलग प्रयास करें, क्योंकि ऐसा लगता है कि यह एक completley खींच रहा है अपने मार्कअप में सीएसएस संदर्भ में

और एक महान प्रत्येक सीएसएस पर "टोकन" का मूल्य बदल चेक-इन

+0

मैं पहले से ही पृष्ठों के लिए सीएसएस जोड़ने के लिए एक स्थिर विधि का उपयोग करने के लिए दिए गए उत्तर तो मैं जोड़ा क्वेरीस्ट्रिंग के निर्माण का एक टाइमस्टैम्प बहुत अच्छा काम करता है। – Greg

+0

हालांकि यह समाधान काम करेगा, यह बड़ी वेबसाइटों के लिए पूरी तरह से अप्रत्याशित है, जिनमें .css और .js फ़ाइलों के सैकड़ों संदर्भ हो सकते हैं। – Karlth

+0

@ user357320, मैं आपको इस पृष्ठ के लाइन 21 और 22 में संदर्भित करता हूं जो कुछ परिभाषाओं द्वारा "बड़ी वेबसाइट" है। सौभाग्य से यह एक अच्छी तरह से संरचित और डिज़ाइन की गई वेबसाइट है, इसलिए इसमें सैकड़ों संदर्भ नहीं हैं। – Rob

5

अपने विकास के माहौल में, एक्सपियर हेडर को बहुत कम सेट करें। अपने उत्पादन वातावरण में, इसे उच्च सेट करें, और उसके बाद इसे रिलीज़ करने से एक सप्ताह पहले इसे कम करें।

2

इसकी नहीं: विभिन्न संसाधन है, तो उदाहरण के लिए "styles.css टोकन = 1234?" समाधान, लेकिन मुझे सीएसएस फ़ाइल में कॉल के अंत में एक क्वेरीस्ट्रिंग जोड़कर पेज स्तर पर इससे पहले मिल गया है:

<link href="/css/global.css?id=3939" type="text/css" rel="stylesheet" /> 

फिर मैं आईडी मान को यादृच्छिक बना दूंगा ताकि यह हमेशा पृष्ठ लोड पर एक अलग मूल्य लोड कर सके। फिर मैं उत्पादन को धक्का देने से पहले इस कोड को बाहर ले जाऊंगा। मुझे लगता है कि आप एक कॉन्फ़िगरेशन फ़ाइल से मूल्य भी खींच सकते हैं, ताकि प्रति प्रतिबद्ध होने के बाद इसे केवल लोड किया जाना चाहिए।

2

इसी प्रकार के (थोड़ा और अधिक विस्तार) इस सवाल के JavaScript संस्करण है, जो एक ही समस्या है/समाधान

Help with aggressive JavaScript caching