मैं कैशिंग में कोई विशेषज्ञ नहीं हूं, लेकिन मुझे लगता है कि nginx हैंडलिंग कैशिंग को Django का उपयोग करने से बेहतर हो सकता है। Django को संभालने के लिए बहुत कुछ है, इसलिए आप हल्के स्थिर सर्वर को उस ग़लत काम करने दे सकते हैं।
मैं CloudFlare का उपयोग नहीं करते हैं, लेकिन मैं इस लाइन का उपयोग अपने स्टैटिक्स कैश करने के लिए, तथापि, तुरंत फ़ाइल परिवर्तन, Nginx सबसे हाल ही में फ़ाइल से प्रसारित (thats एक ही फाइल):
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
}
जो एक है स्निपेट from this gist मैं वर्तमान में उत्पादन में उस conf का उपयोग कर रहा हूं, इसलिए मुझे पता है कि यह काम करता है।
एक बात जो मैं इंगित करूंगा, सुनिश्चित करें कि MemCached काम नहीं कर रहा है और कैशिंग बैकएंड के रूप में आपके django से जुड़ा हुआ है। मैं यह कहता हूं, क्योंकि मैंने दीवार के खिलाफ अपने सिर को मारने के समय में कई घंटे बिताए हैं, क्योंकि बस मेमकैच 10 मिनट तक हर सामग्री के साथ मेरे पेज को कैश कर रहा था।
इस nginx स्थान conf, जब भी मैं अपने .css बदलने के लिए, या एक नई फ़ाइल अपलोड (स्थिर) के साथ
, नई फ़ाइल तुरंत, अधिक लेता है जब तक मैंने रूप python manage.py collectstatic
'उन्हें उचित निर्देशिका में एड
हालांकि मुझे सही करने का खतरा है, अगर यह वास्तव में चाल नहीं कर रहा है।
सबूत है कि इसके बाद के संस्करण के साथ काम करता कैश-पर्दाफाश (के रूप में आप इसे कहते)
- मैं सर्वर में चला गया
- मेरी स्थिर फ़ोल्डर (nginx अभी भी चल रहा) नष्ट कर दिया गया
sudo rm -rf static/
- मेरी साइट
को एक्सेस किया गया
- कोई स्थिर लोड
- वापस चला गया, और
python manage.py collectstatic
- फिर से मेरी साइट तक पहुंचे। स्टेटिक्स लोड
- कोई ब्राउज़र हार्ड रीफ्रेश का उपयोग नहीं किया गया था। कोई nginx reload | जो भी इस्तेमाल किया गया पुनरारंभ करें।
Nginx आपकी statics को कैश करने के लिए पर्याप्त स्मार्ट है, लेकिन जब फ़ाइल नई है और इसे प्रस्तुत करते हैं तो स्थिर को फिर से लोड करें।
आप वास्तव में क्या हासिल करना चाहते हैं? कैशिंग? यदि ऐसा है तो आप जो हासिल करना चाहते हैं उसके मुकाबले बेहतर दृष्टिकोण हैं। यदि आप Django 1.8 का उपयोग कर रहे हैं, तो Nginx के साथ चल रहा है, तो मेरा सुझाव है कि आप Nginx को आपके लिए कैशिंग करते हैं, जबकि Django ऐसा करता है जो यह सबसे अच्छा करता है। – Rexford
@ रेक्सफ़ोर्ड मैं क्लाउडफ्लारे के साथ, Nginx का उपयोग कर रहा हूं। मैं बस्ट कैश करना चाहता हूं (यानी जब मैं नई फाइल अपलोड करता हूं तो उपयोगकर्ता स्वचालित रूप से नई फाइल देखते हैं)। क्या आप सुझाव दे रहे हैं कि Nginx स्वचालित रूप से मेरे लिए बस्ट कैश करेगा? यदि हां, तो क्या आप विवरण प्रदान कर सकते हैं? – Richard
नीचे मेरा उत्तर देखें, जब तक कि आप इसे पूरा करना चाहते हैं, यानी, कोई भी नई पुनः अपलोड की गई सामग्री तुरंत देखें, nginx आपको इस तरह की सुविधा मुफ्त में देता है! कोई django, कोई कैश-बस्टर्स की आवश्यकता हो सकती है। – Rexford