W3 कुल कैश, CDN और थीम फ़ाइलें [बंद]


10

मैंने हाल ही में अपने वर्डप्रेस इंस्टॉलेशन की style.css फ़ाइल को अपडेट किया है। परिवर्तन प्रभावी थे: जब एक व्यवस्थापक के रूप में लॉग इन किया जाता है (मेरा ब्लॉग सेट किया गया है ताकि व्यवस्थापक को साइट का कैश्ड संस्करण कभी न परोसा जाए, लेकिन "लाइव" एक), मैं उन्हें देख सकता हूं।

लेकिन मेरे ब्लॉग को एक सीडीएन (डब्ल्यू 3 कुल कैश का उपयोग करके) परोसा जा रहा है। सीडीएन के माध्यम से, परिवर्तन प्रभावी नहीं हैं: सीडीएन मेरी थीम से संशोधित फ़ाइलों की सेवा नहीं करता है। भले ही मैंने उन्हें संशोधन के बाद अपलोड किया है (डैशबोर्ड> प्रदर्शन> सीडीएन> थीम फाइलें अपलोड करें।

मेरी CDN AmazonCloud फ्रंट पर चलती है। और W3 Total Cache पर Minify डिसेबल है।

मेरी CDN के माध्यम से परोसी जा रही थीम फ़ाइल एक संपीड़ित संस्करण है: style.css.gzip

क्या मुझे अपने सीडीएन से वस्तुओं को "शुद्ध" करना चाहिए या थोड़ा और इंतजार करना चाहिए (यह एक सप्ताह से अधिक हो गया है)। और हाँ, मैं उस ब्राउज़र का कैश खाली कर रहा हूँ जिसका उपयोग मैं परिवर्तनों में देखने के लिए कर रहा हूँ। या कुछ और है जो मुझे याद आ रहा है?

धन्यवाद,

पी

जवाबों:


10

आपको या तो चाहिए

  1. अपनी फ़ाइलों को संस्करण दें (इसे कॉल करके style.css?ver=xxx.xxx) और सुनिश्चित करें कि आपके CloudFront वितरण में "आगे क्वेरी स्ट्रिंग" चालू है। यह बेहतर विकल्प है, क्योंकि इसका मतलब है कि आपको केवल क्वेरी स्ट्रिंग में संख्या बढ़ाना है और CloudFront इस फ़ाइल को स्वचालित रूप से लाएगा।

  2. AWS कंसोल के माध्यम से अपनी फ़ाइलों को मैन्युअल रूप से अमान्य करें (जब आप अपना वितरण संपादित करते हैं तो अमान्य टैब होता है)

'फॉरवर्ड क्वेरी स्ट्रिंग्स' को चालू करने के लिए निम्नलिखित कार्य करें:

  • 'I' के बाईं ओर चेकबॉक्स पर टिक करके अपने Cloudfront डिस्ट्रो को संपादित करें और फिर टूलबार में "वितरण सेटिंग" बटन पर क्लिक करें
  • व्यवहार टैब पर जाएं
  • लाइन का चयन करें, और 'संपादित करें' पर क्लिक करें
  • "फॉरवर्ड क्वेरी स्ट्रिंग्स" को हां में बदलें
  • "हां, संपादित करें" पर क्लिक करें

1
@kaiser yup, संस्करण के रूप में डेटाइम फ़ाइल को संस्करणित करने का सबसे अच्छा तरीका है। हालाँकि आपको अभी भी यह सुनिश्चित करने की आवश्यकता है कि "फॉरवर्ड क्वेरी स्ट्रिंग्स" विकल्प क्लाउडफ्रंट में चालू है, अन्यथा आपके अच्छी तरह से तैयार किए गए संस्करण संख्या को नजरअंदाज कर दिया जाता है: P
au

धन्यवाद। मेरे पास आपके लिए दो प्रश्न हैं क्योंकि मैं इस प्रक्रिया से परिचित नहीं हूं। 1) "संस्करणित" फाइलों का नाम आपके द्वारा दिए गए उदाहरण (प्रश्नचिह्न, समान चिह्न के साथ और मेरी पसंद के नंबरों के साथ सभी "x" को सही) के उदाहरण का पालन करना चाहिए? 2) CLoudFront के लिए मेरे AWS कंसोल पर, मैं अपने ब्लॉग के लिए बनाए गए वितरण के पास स्थित तालिका के बाईं ओर "I" में क्लिक करता हूं। यह मुझे वितरण की सेटिंग्स तक पहुंचने की अनुमति देता है। वहाँ मैं देख सकता हूँ "फॉरवर्ड क्वेरी स्ट्रिंग्स" "असत्य" है। क्या मुझे इस "व्यवहार" को समान मूल्यों के साथ, लेकिन "सत्य।" के लिए "क्यू। स्ट्रिंग्स" के साथ
दोहराना चाहिए

1
1. हाँ या आप अपनी फाइल को नाम देने के लिए @ काइसर के अर्थ का उपयोग कर सकते हैं लेकिन अधूरा जवाब। 2. मैं इस प्रक्रिया के साथ उत्तर को अपडेट करूंगा
au

8

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

add_action( 'wp_enqueue_scripts', 'wpse61738_non_cached_stylesheet' );
function wpse61738_non_cached_stylesheet()
{
    wp_enqueue_style( 
        'style-main',
        get_stylesheet_directory_uri().'/style.css',
        array(),
        filemtime( get_stylesheet_directory().'/style.css' )
    );
}

यह ?ver=0123456789आपके हेडर में आपके style.css संदर्भ लिंक को जोड़ देगा । संस्करण संख्या तभी बदलेगी, जब फ़ाइलों की सामग्री संशोधित हो जाएगी। इसलिए आपके पास एक समाधान है जो सर्वर) कैश बी) ब्राउज़र कैश के साथ एकदम सही काम करता है और स्वचालित रूप से ताज़ा करता है।


ठीक है, यह वास्तव में एक दिलचस्प विकल्प है: यह style.cssप्रत्येक संशोधन के बाद मेरी फ़ाइल को मैन्युअल रूप से संस्करण करने की आवश्यकता को हटा देता है (जो मैं एक बिंदु या किसी अन्य पर करना भूल जाएगा)। अब, यदि मैं पूछ सकता हूं कि मैं इस कोड को कहां जोड़ूं? मैं अपनी functions.phpफ़ाइल का अनुमान लगाऊंगा?
परनीक्स

मुझे नहीं पता, आपको इस कोड को कहाँ जोड़ना है। बस अपनी थीम फ़ाइलों के माध्यम से खोजें और "normal" कॉल को style.css फ़ाइल में बदलें। मैं एक छोटा अपडेट पोस्ट करूंगा, ताकि आप इसे अपने फ़ंक्शंस में डाल सकें। एफपी फ़ाइल (इसका अभी भी मतलब है कि आपको मूल कॉल को निकालने की आवश्यकता है)। और btw: यह केवल @anu जवाब के लिए एक अतिरिक्त है। (अपवोट्स ने अभी भी सराहना की :)
kaiser

1
कोई दिक्कत नहीं है! मैं पूरी तरह से समझता हूं कि इस कोड का उपयोग किए गए विषय के आधार पर बदलने की संभावना है। मैं इसे अपनी functions.phpफ़ाइल में जोड़ने का प्रबंधन करूँगा । मुझे अभी भी लगता है कि यह @anu द्वारा प्रदान किए गए समाधान का एक अच्छा पूरक है। सहायता के लिए बहुत - बहुत धन्यवाद।
Parneix

-1

एक छोटा जवाब ...

  1. अपनी सभी थीम फ़ाइलों को हटा दें और उन्हें फिर से अपलोड करें। कुछ बार हटाए जाने की कार्रवाई CDN को साफ़ करती है

  2. हाँ, आप कोशिश कर सकते हैं - लेकिन हटाएं और पुनः अपलोड आमतौर पर जल्दी होता है।

  3. W3TC और अमेज़ॅन में सेटिंग्स भी देखें। W3TC में डिफ़ॉल्ट कैश आमतौर पर 365 दिन है। जो 31536000 सेकंड है :)

अमेज़ॅन में .. सीडीएन को फिर से क्वेरी करने के लिए एंडपॉइंट्स के लिए एक सेटिंग होगी। मुझे पता है कि Rackspace में डिफ़ॉल्ट 24 घंटे है।


1
इसे करने के बहुत बेहतर तरीके हैं, मेरा उत्तर देखें
au

“अपनी सभी थीम फ़ाइलों को हटा दें और उन्हें फिर से अपलोड करें। कुछ समय बाद हटाए जाने की कार्रवाई सीडीएन को साफ करती है "आप मेरे लिए उन्हें अपनी वेबसाइट पर हटा देना चाहते हैं, है ना? फिर उन्हें मेरे वर्डप्रेस इंस्टॉलेशन में फिर से अपलोड करें। और फिर मुझे लगता है कि W3 कुल कैश डैशबोर्ड के माध्यम से "अपलोड थीम फ़ाइलें" फिर से करें?
Parneix

1
@Parneix गंभीरता से, जब तक आपके पास सब कुछ नहीं हट जाता। यह लगभग निश्चित रूप से तब तक काम नहीं करेगा जब तक आप सीडीएन से सब कुछ हटा नहीं देते। आपकी बासी CSS फ़ाइल को अवैध करने के बेहतर तरीके हैं
au

1
हाँ धन्यवाद! मैंने आपके सुझाव पर ध्यान दिया। मैं वास्तव में यहाँ मिल रही सभी मदद की सराहना करता हूँ। न केवल मैं अपने मुद्दे को हल कर रहा हूं, बल्कि मैं नया सामान भी सीख रहा हूं।
22ne 22
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.