2012-07-06 25 views
16

मैं विकास में रहते हुए अपनी जेएस फ़ाइलों के लिए एक उचित कैश समाप्ति सेट करने का प्रयास कर रहा हूं। मेरे पास मानक सेटअप है, जहां एचटीएमएल, सीएसएस और जेएस static निर्देशिका के तहत रह रहे हैं।फ्लास्क स्थैतिक फ़ाइल कैश-कंट्रोल

docs इसका उल्लेख करें, लेकिन मेरे जीवन के लिए मैं इसे काम नहीं कर सकता। मैं दोनों तरीकों निहित, पहले

class MyFlask(flask.Flask): 
    def get_send_file_max_age(self, name): 
     if name.lower().endswith('.js'): 
      return 60 
     return flask.Flask.get_send_file_max_age(self, name) 

app = MyFlask(__name__) 

और

app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 60 

दोनों कोई प्रभाव नहीं पड़ा है की कोशिश की है, के तहत मेरी जे एस फ़ाइलें/स्थिर अभी भी, तो डिफ़ॉल्ट संचय समय समाप्ति के साथ वापस आ रहे हैं

Cache-Control: public, max-age=43200 

किसी भी पॉइंटर्स की सराहना की।

+4

1. क्या आप फ्लास्क देव सर्वर या http प्रॉक्सी जैसे nginx का उपयोग करते हैं? 2. आपको 'रिटर्न सुपर (माईफ्लास्क, स्वयं)'get_send_file_max_age (नाम)' '' '' लौटा फ्लास्क के बजाय '' 'का उपयोग करना चाहिए। Flask.get_send_file_max_age (स्वयं, नाम)' '। – Jarus

+0

उपरोक्त वर्ग defalt फ्लास्क विकास सर्वर का उपयोग कर, मेरे लिए काम करता है। –

+0

इनके लिए और प्रदर्शन कारणों से (और जो मैंने कई अन्य लोगों को सुना है) से मेरी स्थिर फ़ाइलों को सीधे जो भी वेबसर्वर (nginx/apache) का उपयोग कर रहा है, मैं सीधे उपयोग कर सकता हूं। धीमी उत्तर (2 साल) के लिए –

उत्तर

0

आप कैश की समाप्ति के प्रबंधन के लिए webassets पर देखना चाह सकते हैं। यह विकास और उत्पादन पर्यावरण दोनों में काम करता है।

2

मुझे यह समस्या थी और मुझे ऑनलाइन जवाब नहीं मिला जो मेरे लिए काम करता था।

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

अपाचे के लिए निर्देश यहां दिए गए हैं।

पहले mod_expires मॉड्यूल स्थापित:

sudo a2enmod expires

फिर अपने .htaccess फाइल करने के लिए कुछ इस तरह जोड़ें: कैसे Apache manual में यह कॉन्फ़िगर करने के

ExpiresByType text/css "access plus 1 year" 
ExpiresByType application/javascript "access plus 1 year" 
ExpiresByType image/* "access plus 1 year" 

अधिक जानकारी।