2013-04-05 7 views
5

मैं अपने ग्राहकों को अद्यतन करने के बाद अक्सर अपनी साइट अपडेट कर रहा हूं, मेरे ग्राहकों ने पुरानी छवियों की रिपोर्टिंग & स्क्रिप्ट को नए लोगों के बजाय लोड किया जा रहा है। मुझे पता है कि वे अपने ब्राउज़र कैश से आ रहे हैं, लेकिन क्या कोई तरीका है कि मैं स्क्रिप्ट को सर्वर में कैश से लोड न करने के लिए मजबूर कर सकता हूं।nginx कैश से लोडिंग को रोकें

मैं php-fpm के साथ nginx का उपयोग कर रहा हूं।

+1

आप इन जैसे हेडर का उपयोग करने का प्रयास कर सकते हैं: 'हेडर (' समाप्त हो जाता है: गुरु, 01-जनवरी -70 00:00:01 जीएमटी '); शीर्षलेख ('अंतिम संशोधित:'। जीएमडीएटी ('डी, डी एम वाई एच: आई: एस')। 'जीएमटी'); शीर्षलेख ('कैश-कंट्रोल: नो-स्टोर, नो-कैश, अवश्य-पुनरीक्षण'); शीर्षलेख ('कैश-कंट्रोल: पोस्ट-चेक = 0, प्री-चेक = 0', झूठा); शीर्षलेख ('प्रज्ञा: नो-कैश'); ' – vikingmaster

उत्तर

11

आप ब्राउज़र कैशिंग व्यवहार को प्रभावित करने के लिए HTTP शीर्षलेखों को मजबूर कर सकते हैं, हालांकि यह शायद उत्पादन वातावरण में एक अच्छा विचार नहीं है जहां आप कैशिंग चाहते हैं।

तो बस की तरह कुछ का उपयोग करें:

http://wiki.nginx.org/HttpHeadersModule

कहा जा रहा है, मैं अपने आप में मिल गया है:

expires -1 

Cache-Control no-cache हैडर अधिक जानकारी के लिए बाध्य करने के लिए

चेक बस छवियों और स्थैतिक फाइलों के नाम बदलने की आदत के रूप में मैं उन्हें संशोधित करता हूं। शायद यह सीडीएन के साथ काम करने से आता है जहां यह अविश्वसनीय रूप से सहायक हो सकता है। तो कहें कि मेरे पास स्थिर फाइलें हैं जिन्हें मैं अक्सर अपडेट कर सकता हूं (यानी वे सामग्री के कुछ विशिष्ट टुकड़े का हिस्सा नहीं हैं)। मैं उन्हें पसंद नाम होगा:

someimagev1.jpg 
someimagev2.jpg 
somejs1.js 
somejs2.js 
etc. 

मैं (HTML स्रोत में और लिंक) मूल्यों को बदल के रूप में की जरूरत है।

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