2013-01-24 14 views
8

की सेवा नहीं कर रहा है मैं संपत्ति_एसआईएनसी के साथ रेल 3.2 चला रहा हूं।रेल 3.2 + हेरोकू + एस 3 + क्लाउडफ्रंट: जीजीआईपी सीएसएस जेएस

मेरे सीएसएस और जेएस का एक जीजी संस्करण बनाया गया है। क्लाउडफ्रंट gzip संस्करण की सेवा नहीं कर रहा है, भले ही शीर्षलेख gzip के लिए अनुरोध किया गया हो, डिफ्लेट करें।

मैंने config.gzip_compression = trueasset_sync.rb में भी कोशिश की लेकिन क्लाउडफ्रंट अभी भी असम्पीडित संस्करण की सेवा कर रहा है। मैंने पुष्टि की है कि मैं ABC.cloudfront.net/XYZ.css.gz

+0

config.gzip_compression = सच वास्तव में यह काम करता है। यह फ़ाइलों को उनके gzipped संस्करण के साथ बदल देता है ताकि क्लाउडफ्रंट हमेशा संकुचित संस्करण की सेवा करेगा। आपको कैशिंग समस्या होने की अधिक संभावना है, अपनी फ़ाइल का नाम बदलने का प्रयास करें। (या सुनिश्चित करें कि आपके फाइलनामों और फ़ाइल सामग्री में डाइजेस्ट हैं) – icem

उत्तर

1

पर पहुंच सकता हूं क्या आपने अपने आवेदन के लिए heroku config:add ASSET_SYNC_GZIP_COMPRESSION=true सेट किया था?

+0

हां, ऐसा कोई फर्क नहीं पड़ता – marcgg

4

क्या आपके क्लाउडफ्रंट वितरण की उत्पत्ति एस 3 बाल्टी है? यदि ऐसा है, तो समस्या यह है कि S3 Accept-Encodings शीर्षलेख सही ढंग से संभाल नहीं करता है: https://github.com/rumblelabs/asset_sync/issues/153

उस समस्या में उल्लिखित कुछ संभावित समाधान हैं। आप या तो डिफ़ॉल्ट रूप से gzipped फ़ाइलों को सेवा दे सकते हैं, क्योंकि अधिकांश ब्राउज़र (कुछ मोबाइल ब्राउज़र को छोड़कर) इसे सही तरीके से संभाल लेंगे, या आप solution outlined here को आजमाएं।

एक अन्य संभावित समाधान अपने CloudFront वितरण के लिए कस्टम मूल रूप में एक वार्निश कैश परत का उपयोग करने के लिए है:

इंटरनेट -> CloudFront -> वार्निश -> S3 बाल्टी

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

+0

क्या आपकी परिसंपत्ति_एसआईएनसीआरबी कॉन्फ़िगर/प्रारंभकर्ताओं में स्थित है? क्या आपने सुनिश्चित किया है कि आपको यह लाइन आपके रेल लॉग में नहीं मिल रही है? "AssetSync: अंतर्निहित प्रारंभकर्ता से डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग करना" – Bijan

+0

मैंने एस 3 भाग को छोड़कर क्लाउडफ़्रंट पर सीधे सेवा की, लेकिन आपका उत्तर बहुत समझ में आता है। एक बक्षीस है :) – marcgg

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