मुझे कुछ ट्यूटोरियल्स मिल गए हैं कि कैसे एक सीएसएस फ़ाइल को gzip करने के लिए जिसमें आप संपीड़न के साथ सीएसएस फ़ाइलों को शामिल करने के लिए एक सार्वजनिक PHP फ़ाइल बनाते हैं। समस्या यह है कि मैं इसे अपने सीएसएस फ़ाइलों को कैश करने के लिए नहीं मिल सकता है। मैं संदर्भ के लिए फायरबग का उपयोग कर रहा हूं और मैंने वास्तव में कुछ जावास्क्रिप्ट को संपीड़ित करने के लिए एक ही कोड का उपयोग करने की कोशिश की है और यह ठीक है।कैशिंग gzipped css
if(extension_loaded('zlib')){ ob_start('ob_gzhandler'); } $offset = 60 * 60 * 24 * 31; header('Content-type: text/css'); header ('Cache-Control: max-age=' . $offset . ', must-revalidate'); header ('Expires: ' . gmdate ("D, d M Y H:i:s", time() + $offset) . ' GMT'); ob_start("compress"); function compress($buffer) { // Remove Comments, White Space, End ;'s $buffer = preg_replace('#/\*.*?\*/#s', '', $buffer); $buffer = preg_replace('/\s*([{}|:;,])\s+/', '$1', $buffer); $buffer = preg_replace('/\s\s+(.*)/', '$1', $buffer); $buffer = str_replace(';}', '}', $buffer); $buffer = str_replace(' {', '{', $buffer); return $buffer; } include('global.css'); if(extension_loaded('zlib')){ ob_end_flush(); }
तो मैं बस अन्य पृष्ठों पर एक सीएसएस दस्तावेज़ के रूप में मेरे लिए php फ़ाइल को संदर्भित कर रहा हूँ:
यहाँ कोड है। जैसा कि आप देख सकते हैं कि मैंने मिश्रण में अधिकतम आयु जोड़ने का प्रयास किया है जो असफल साबित होता है।
यहाँ प्रतिक्रिया हेडर हैं
Date Tue, 21 Jul 2009 19:59:19 GMT Server Apache/1.3.41 (Darwin) PHP/4.4.9 X-Powered-By PHP/4.4.9 Cache-Control max-age=2592000, must-revalidate Expires Thu, 20 Aug 2009 19:59:19 GMT Content-Encoding gzip Vary Accept-Encoding Keep-Alive timeout=15, max=93 Connection Keep-Alive Transfer-Encoding chunked Content-Type text/css
क्या मैं याद कर रहा हूँ, या एक बेहतर तरीका ऐसा करने के बारे में जाने के लिए है?
धन्यवाद,
संपादित करें:
एक स्क्रिप्ट है कि पता लगाता है या नहीं, फ़ाइल बदल दिया गया है & एक 304 भेजने यह नहीं, उचित हेडर के साथ संयोजन में इस समस्या को हल किया है गया है।
आर्थर
हे एंथनी, मैंने अंतिम-संशोधित जोड़ने की कोशिश की है जैसे कि आपने बाद में और पिछली संशोधन तिथि के संयोजन के साथ कोई भाग्य नहीं दिया है। मैंने हेडर्स को ईटाग के साथ भी भेजा है और यदि से संशोधित किया गया है, और यह अभी भी कैशिंग नहीं है ... आपकी प्रतिक्रिया के लिए धन्यवाद, मैं भविष्य में संदर्भ और डिबगिंग के लिए यह सब ध्यान में रखूंगा। – askon
@askon: वे महत्वपूर्ण कारक नहीं थे, मुख्य समस्या यह है कि आप कैश-कंट्रोल हेडर में अनिवार्य निर्देश को शामिल करना चाहते हैं। इसका उपयोग करना मतलब है कि सीएसएस हमेशा पुनः प्राप्त किया जाएगा। क्या आप अपने परीक्षण में पेज रीफ्रेश (एफ 5) का भी उपयोग कर रहे हैं? इससे कुछ भी साबित नहीं होगा, सीएसएस जैसे संसाधन रीफ्रेश संदर्भ के तहत रीफ्रेश किए गए हैं और आपके कोड में निर्मित 304 तंत्र के बिना संसाधन के पूर्ण प्राप्त होने के परिणामस्वरूप। – AnthonyWJones
क्षमा करें मुझे थोड़ा और विशिष्ट होना चाहिए था। मैं चाहिए पुनः सत्यापित लाइन को दूर किया था, यहाँ मेरी शीर्ष लेख प्रतिक्रिया है: http://freetexthost.com/zqbddbchvz मैं क्या समझ में नहीं आता है मैं एक पाठ/जावास्क्रिप्ट को छोड़कर ठीक उसी स्क्रिप्ट कोशिश कर सकते हैं दस्तावेज़ और यह 200 और कैश दिखाता है। – askon