2012-11-03 30 views
7

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

मैंने सोचा कि फ़ाइल नामों पर संस्करण संख्या डालने का तरीका कैश अमान्य कैश को सॉर्ट करने का एक अच्छा तरीका हो सकता है, कैरियरवेव का उपयोग करके इसे कैसे प्राप्त किया जाए?

और क्या यह सबसे अच्छा तरीका है?

+0

फसल का प्रदर्शन कैसे किया जा रहा है? कैरियरवेव के माध्यम से Rmagick के माध्यम से? – deefour

+0

फसल, कोई मुद्दों के साथ काम करता है इसे इस्तेमाल करता है MiniMagick और मैं सर्वर (नहीं CDN के माध्यम से) पर फसली छवियों को देख सकते हैं – Ryan

+0

क्या मैं पूछ रहा हूँ है, तो आप CarrierWave अपलोड प्रक्रिया के स्वतंत्र फसल कर रहे हो? – deefour

उत्तर

14

मैं CloudFlare

यहाँ मेरी hackish समाधान के साथ एक ही मुद्दा था: एक पैरामीटर में updated_at टाइमस्टैम्प डाल दिया। , सभी CDN

class AssetUploader < CarrierWave::Uploader::Base 

    def url(options={}) 
    super.split("?v=")[0]+"?v=#{model.updated_at.to_time.to_i}" rescue super 
    end 

end 
+1

"हैकिश", लेकिन क्या यह वास्तव में ऐसा करने का एक साफ तरीका नहीं है? –

+0

यह काम करता है! लेकिन मुझे समझ में नहीं आता है। इस "वी" पैरामीटर के लिए क्या उपयोग किया जाता है? दृश्यों के पीछे क्या चल रहा है? धन्यवाद! –

+0

यह पूरी तरह से काम करता था! समस्या अब है मैं carrierwave-बैकग्राउंडर उपयोग शुरू किया और इसे अब और काम नहीं करेगा। कोई अंतर्दृष्टि? –

7

साथ काम करना चाहिए पर अमेज़न CloudFront CDN url चाल काम करने के लिए बस अपने वितरण में क्वेरी स्ट्रिंग सक्षम करने के लिए याद है। व्यवहार टैब पर जाएं और 'अग्रेषित क्वेरी स्ट्रिंग' सक्षम करें।

+0

पता लगाना क्या गलत है जब तक मैं अपने जवाब को पढ़ने के कुछ घंटे बिताए। आपको बहुत - बहुत धन्यवाद! – Sbbs