2013-02-23 43 views
5

मुझे क्लाउडफ्रंट के साथ काम करने के लिए django कंप्रेसर प्राप्त करने में कुछ परेशानी हो रही है। मैं अपनी संपीड़ित फ़ाइलों और manifest.json फ़ाइल उत्पन्न करने के लिए ऑफ़लाइन संपीड़न आदेश चला रहा हूं। इसके बाद, मैं संकुचित फ़ाइलों को अपने एस 3 बाल्टी में अपलोड करने के लिए संग्रहित चला रहा हूं।Django कंप्रेसर - क्लाउडफ्रंट और manifest.json

ये स्टैटिक फ़ाइलें तो CloudFront से सेवा कर रहे हैं, तो अपनी सेटिंग्स कुछ इस तरह दिखाई:

STATIC_ROOT = '' 
STATIC_URL = 'http://<my-cloudfront-domain>/somebucket/' 

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 

COMPRESS_OFFLINE = True 

समस्या है, CloudFront manifest.json के एक पुराने संस्करण की सेवा है, जिसका अर्थ कंप्रेसर एक OfflineGenerationError फेंक रहा है।

यहां तक ​​कि कैश बैकएंड के साथ भी, मुझे चिंता है कि कैश सर्वर ऑफलाइन/किसी भी कारण से फ़्लश होने पर मेरी मेनिफेस्ट फ़ाइल गलत होगी।

क्या मुझे यह सुनिश्चित करने के लिए कुछ याद आ रहा है कि मैं ऑफ़लाइन जेनरेशन एरर में नहीं चलता?

+0

आप एक समाधान मिला। यहां एक ही मुद्दा है। –

+0

मुझे यह समस्या भी हो रही है, लेकिन मुझे यह समझने में असफल रहा कि संकुल डिफ़ॉल्ट फ़ाइल भंडारण का उपयोग करने के बजाय स्थिर URL के माध्यम से 'manifest.json' का उपयोग क्यों करेगा; यदि बाद वाले ने किया, तो S3 को सीधे एक्सेस किया जाएगा और कोई कैशिंग समस्या नहीं होगी ... क्लाइंट द्वारा manifest.json का उपयोग नहीं किया जाता है। मैंने अपने ग्राहक को अभी तक इसका उपयोग करने की कोशिश नहीं की है। – Bryan

उत्तर

0

जिस तरह से अमेज़ॅन क्लाउडफ्रंट काम करता है, आपको उसी फ़ाइल के "संस्करण" प्रदान करके फ़ाइलों को अमान्य करने की आवश्यकता है, या बस एक नया नाम छोड़ दें और उपयोग करें। प्रारंभिक विलोपन महंगा दिखता है और बिल किया जाता है।

एडब्ल्यूएस कंसोल से अपना manifest.json अपलोड करने का प्रयास करें और उसी फ़ाइल के लिए एक नया संस्करण सेट करें। यह फ़ाइल को हटाए बिना क्लाउडफ्रंट एंडपॉइंट्स अपडेट करेगा।

स्रोत: http://aws.amazon.com/en/cloudfront/ (वस्तु संशोधन और कैश शक्ति कम विषय)