/ / PHP फ़ाइल पर कैश हेड काम नहीं कर रहा है - php, Apache, कैशिंग

PHP फ़ाइल पर कैश हेडर काम नहीं कर रहे हैं - PHP, अपाचे, कैशिंग

मेरे पास एक एप्लिकेशन है जहां स्थिर फ़ाइलों को बदलने के लिए कॉन्फ़िगरेशन विकल्पों की अनुमति देने के लिए PHP के माध्यम से अन्यथा स्थिर जावास्क्रिप्ट फ़ाइलों की एक संख्या उत्पन्न हो रही है (पथ: mystaticfile.js.php)। सब कुछ ठीक काम करता है कि मैं कैश सेटिंग्स को काम करने के लिए नहीं कर सकता हूं और इन संसाधनों को हर पृष्ठ लोड के साथ फिर से लोड किया जा रहा है।

PHP फ़ाइल कैश सेटिंग्स सेट करने के लिए निम्नलिखित हेडर का उपयोग करती है:

$expires= 60 * 60 * 24 * 60; //cache for 60 days
header("Pragma: public");
header("Cache-Control: max-age=" . $expires);
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $expires) . " GMT");
header("content-type: application/x-javascript");

हालाँकि, जब फाइलें परोसी जाती हैं तो वे "दिखने वाले हेडर दिखाते हैं:"

HTTP/1.1 200 OK
Date: Sun, 06 Nov 2016 19:18:00 GMT
Server: Apache/2.2.15 (CentOS)
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 744
Keep-Alive: timeout=15, max=95
Connection: Keep-Alive
Content-Type: application/x-javascript

मेरा पहला विचार यह था कि ऐसा इसलिए हो सकता है क्योंकि अपाचे के पास है ExpiresActive झंडा सेट किया गया है, लेकिन मुझे कोई दिखाई नहीं दे रहा है ExpiresByType PHP फ़ाइलों के लिए निर्धारित नियम।

ऑनलाइन पढ़ने से ऐसा लगता है ETag समस्याएँ समस्या हो सकती हैं, लेकिन मैंने जोड़ा "

Header unset Pragma
FileETag None
Header unset ETag

http.conf फ़ाइल में (और सेवा को पुनः आरंभ किया गया) और अभी भी कोई पासा नहीं है।

कोई विचार?

उत्तर:

उत्तर № 1 के लिए 1

स्रोत: PHP: कुछ जादुई "कैश-कंट्रोल" हैडर के बारे में चिंता है?

ये हेडर अपने आप सेट हो जाते हैं PHP सत्र मॉड्यूल सेवा अपने पृष्ठों के ब्राउज़र / प्रॉक्सी आधारित कैशिंग को रोकें। तुम पर निर्भर पर्यावरण सेटअप, इन हेडर का उपयोग करके नियंत्रित करना संभव है session_cache_limiter () फ़ंक्शन या php.ini का उपयोग करें

इन व्यवहार को अक्षम करने के लिए बस एक खाली स्ट्रिंग पास करें session_cache_limiter () समारोह में उल्लेख के रूप में कार्य:

session_cache_limiter("");