2016-12-08 29 views
9

मैं अन्य के साथ-साथ जे एस के लिए.htaccess में सीडीएन के लिए लीवरेज ब्राउज़र कैशिंग कैसे जोड़ें?

cdn.domain.com/abc.jpg (expiration not specified) 
cdn.domain.com/abc.png (expiration not specified) 

एक ही मुद्दा, सीएसएस & पर मेरे .htaccess

ExpiresActive On 
ExpiresByType image/jpg "access 1 year" 
ExpiresByType image/jpeg "access 1 year" 
ExpiresByType image/gif "access 1 year" 
ExpiresByType image/png "access 1 year" 
ExpiresByType text/css "access 1 month" 
ExpiresByType application/pdf "access 1 month" 
ExpiresByType application/x-javascript "access 1 month" 
ExpiresByType application/x-shockwave-flash "access 1 month" 
ExpiresByType image/x-icon "access 1 year" 
ExpiresDefault "access 2 days" 

में कोड के नीचे है।

मुझे .htaccess में डालने की क्या ज़रूरत है ताकि अधिकतर उसमें ग्रेड प्राप्त हो सके।

+0

ये बाहरी फाइलें हैं, हां? आपको बाहरी '.JS',' css' और जो भी अन्य फाइलें हैं उन्हें डाउनलोड करने और उन्हें स्थानीय रूप से चलाने की आवश्यकता होगी। आप इसे 'क्रॉन' का उपयोग करके करेंगे। इस प्रश्न पर मेरा उत्तर देखें: [तृतीय पक्ष जेएस के लिए लीवरेज ब्राउज़र कैशिंग] (http://stackoverflow.com/questions/38376871/leverage-browser-caching-for-3rd-party-js/38377857#38377857) – Lag

+0

HI @thickguru फ़ाइलों को डाउनलोड करने के लिए w/o कैसे प्राप्त करें। क्योंकि प्रदर्शन में सुधार के लिए सीडीएन का उपयोग करने का उद्देश्य। ऐसा नहीं कर सकता –

+0

आप मुझे डर नहीं सकते। बाहरी फाइलों के साथ नहीं। यह केवल स्थानीय फाइलों के साथ काम करेगा। यही कारण है कि मैंने 'क्रॉन' का उपयोग करने का सुझाव दिया। – Lag

उत्तर

10

आप CDN के लिए उत्तोलन ब्राउज़र कैशिंग का उपयोग करना चाहते हैं, तो यह कैश-नियंत्रण जैसे कुछ कैशिंग हेडर जोड़कर कैश फ़ाइलों को अच्छा है, समय-सीमा समाप्त और Last-Modified।

Mod_Headers

उत्तोलन ब्राउज़र कैशिंग का उपयोग कर आप एक साझा सर्वर पर हैं और अपने मेजबान Mod_Expires सक्षम नहीं होगा, तो आप अभी भी Mod_headers का उपयोग, जो उपलब्ध हो जाएगा द्वारा लाभ उठा सकते हैं ब्राउज़र कैशिंग।

# Leverage browser caching using mod_headers # 
<IfModule mod_headers.c> 
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
     Header set Expires "Wed, 15 Apr 2020 20:00:00 GMT" 
     Header set Cache-Control "public" 
    </FilesMatch> 
</IfModule> 
# End of Leverage browser caching using mod_headers # 
उदाहरण नीचे के परीक्षण के लिए

:

# 1 YEAR 
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$"> 
Header set Cache-Control "max-age=31536000, public" 
</FilesMatch> 

# 1 WEEK 
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$"> 
Header set Cache-Control "max-age=604800, public" 
</FilesMatch> 

# 3 HOUR 
<FilesMatch "\.(txt|xml|js|css)$"> 
Header set Cache-Control "max-age=10800" 
</FilesMatch> 

# NEVER CACHE - notice the extra directives 
<FilesMatch "\.(html|htm|php|cgi|pl)$"> 
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate" 
</FilesMatch> 

परीक्षणनई हेडर

आप सत्यापित कर सकते हैं अगर कैश-नियंत्रण: अधिकतम उम्र हैडर चलाकर अपने फाइलों पर जगह में है एक "कर्ल" कमांड जैसे:

curl -I http://foo.bar.netdna-cdn.com/file.ext 

HTTP/1.1 200 OK 
Date: Fri, 16 Sep 2014 14:12:20 GMT 
Content-Type: text/css 
Connection: keep-alive 
Cache-Control: max-age=604800, public ← 1 Week caching time 
Expires: Thu, 21 May 2015 20:00:00 GMT 
Vary: Accept-Encoding 
Last-Modified: Thu, 24 Jan 2013 20:00:00 GMT 
GMT; path=/; domain=.domain.com 
Server: NetDNA-cache/2.2 
X-Cache: HIT 

आप नीचे दिए गए कोड का इस्तेमाल किया है:

ब्राउज़र कैशिंग Mod_Expires
सबसे आम तरीका लाभ उठाने के लिए ब्राउज़र कैशिंग mod_expires उपयोग करने के लिए है का उपयोग कर। निम्नलिखित कोड आपके .htaccess में जोड़ा जा सकता है और सभी उपयोगकर्ताओं के लिए स्वचालित रूप से ब्राउज़र कैशिंग सक्षम कर देगा।

# Leverage browser caching using mod_expires # 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType image/jpg "access plus 1 year" 
    ExpiresByType image/jpeg "access plus 1 year" 
    ExpiresByType image/gif "access plus 1 year" 
    ExpiresByType image/png "access plus 1 year" 
    ExpiresByType text/css "access plus 1 month" 
    ExpiresByType application/pdf "access plus 1 month" 
    ExpiresByType text/x-javascript "access plus 1 month" 
    ExpiresByType application/x-shockwave-flash "access plus 1 month" 
    ExpiresByType image/x-icon "access plus 1 year" 
    ExpiresDefault "access plus 2 days" 
</IfModule> 
# End of Leverage browser caching using mod_expires # 
+0

आपका समाधान काम करता है :) धन्यवाद –

2

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

यह बेहतर है क्योंकि आप अपने सीडीएन का उपयोग करने वाली प्रत्येक साइट पर कैशिंग नियम जोड़ने के बजाय केवल एक ही स्थान पर कैश हेडर जोड़ते हैं।

6

ब्राउज़र कैशिंग क्या है?

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

enter image description here

कुछ घटक है कि ताकि ठीक से लाभ उठाने के लिए ब्राउज़र कैशिंग सक्षम किया जाना चाहिए रहे हैं। उदाहरण के लिए, आपको यह सुनिश्चित करना होगा कि आप ब्राउज़र कैश को यह निर्धारित करने के लिए कैश सत्यापनकर्ता निर्दिष्ट करते हैं कि फ़ाइल को स्थानीय कैश से अभी भी पुनर्प्राप्त किया जा सकता है या सर्वर पर अनुरोध किया जाना चाहिए। इसके अतिरिक्त, आपको अपनी संपत्तियों के लिए समय-समय पर समाप्त या कैश-कंट्रोल हेडर सेट करना होगा। दोनों का उपयोग अनावश्यक होगा। इसके अलावा, Gtmetrix पसंद कैश-कंट्रोल पर समाप्त हो जाता है क्योंकि यह अधिक व्यापक रूप से समर्थित है। इसलिए यह आलेख ब्राउज़र कैशिंग का लाभ उठाने के तरीके का प्रदर्शन करते समय एक्सपियर हेडर का उपयोग करने पर केंद्रित होगा।

कैश-नियंत्रण
कैश-नियंत्रण के लिए हमें अपने ब्राउज़र कैशिंग का एक सा अधिक नियंत्रण और कई लोगों को यह आसान एक बार सेटअप का उपयोग करने के लिए अनुमति देता है।

# 1 Year for most static assets 
<filesMatch ".(css|jpg|jpeg|png|gif|js|ico)$"> 
Header set Cache-Control "max-age=31536000, public" 
</filesMatch> 

Gzip Comporession (Magento के लिए उपयोगी वैरी)

<ifModule mod_gzip.c> 
    mod_gzip_on Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file \.(html?|txt|css|js|php|pl|asp|html)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime ^text/.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 

<ifmodule mod_deflate.c> 
    AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript 
</ifmodule> 

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

अपनी .htaccess फ़ाइल खोलें। (स्मार्ट बनें: अपनी मूल .htaccess फ़ाइल की एक प्रति बनाएं, अगर आप गलती से गलती करते हैं और वापस करने की आवश्यकता है)।

अब यह अपाचे में हेडर मॉड्यूल (सेट 'ExpiresActive' 'पर' के लिए) समय-सीमा समाप्त करने के लिए सक्षम है, तो अपनी .htaccess फाइल में जोड़ने के लिए समय आ गया है:

<IfModule mod_expires.c> 

# Enable expirations 
ExpiresActive On 

</IfModule> 

यह उपयोगी हो सकता है एक डिफ़ॉल्ट समाप्ति की तारीख के लिए एक "डिफ़ॉल्ट निर्देश" जोड़ने के लिए है, ताकि 2 पंक्तियाँ है अब आप जोड़ देंगे:

<IfModule mod_expires.c> 

# Enable expirations 
ExpiresActive On 

# Default directive 
ExpiresDefault "access plus 1 month" 

</IfModule> 

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

<IfModule mod_expires.c> 

# Enable expirations 
ExpiresActive On 

# Default directive 
ExpiresDefault "access plus 1 month" 

# My favicon 
ExpiresByType image/x-icon "access plus 1 year” 

# Images 
ExpiresByType image/gif "access plus 1 month" 
ExpiresByType image/png "access plus 1 month" 
ExpiresByType image/jpg "access plus 1 month" 
ExpiresByType image/jpeg "access plus 1 month" 

# CSS 
ExpiresByType text/css "access 1 month” 

# Javascript 
ExpiresByType application/javascript "access plus 1 year" 

</IfModule> 

अब GTmetrix साथ एक और परीक्षण चलाने के लिए और परिणामों की तुलना।यह अपने परीक्षण साइट के लिए परिणाम है को लागू करने हेडर कार्यकाल समाप्ति के बाद:

अनुशंसाएँ

  • सब स्थिर संसाधनों के लिए अपने कैशिंग के साथ आक्रामक हो एक माह के न्यूनतम पर
  • समाप्ति की (अनुशंसित: एक्सेस प्लस 1 साल)
  • अपने कैशिंग को एक वर्ष से अधिक समय पहले सेट न करें!

ब्राउज़र कैशिंग है कि आपकी वेबसाइट प्रदर्शन तेज़ हो जाएगी कैशिंग, CDN के एकीकरण (MaxCDN की तरह) की तरह कई सुविधाओं के साथ वर्डप्रेस प्लगइन

W3 Total Cache: सबसे अच्छा कैशिंग प्लगइन में से एक का उपयोग कर।

नोट

  1. नहीं तो फिर इसे सक्षम करने के लिए के रूप में फिर से लिखने मॉड्यूल कैशिंग कार्रवाई पूरा करने के लिए की आवश्यकता होगी अपने वेब सर्वर तकनीकी टीम से संपर्क सुनिश्चित करें कि mod_rewrite अपने Apache वेब सर्वर, पर सक्षम है ।
  2. चेतावनी! यदि आप किसी चीज़ के लिए भविष्य की समाप्ति तिथि निर्धारित करते हैं और फिर उन फ़ाइलों में से किसी एक को अपडेट करते हैं, तो ब्राउज़र को फिर से लाने के लिए आपको फ़ाइल का नाम बदलना होगा।
    उदाहरण: यदि आप अपना जावास्क्रिप्ट 1 साल पर सेट करते हैं, और आप अपनी जावास्क्रिप्ट फ़ाइलों में से एक को अपडेट करते हैं, तो आपको वास्तविक फ़ाइल का नाम बदलना होगा। ऐसा करने का एक अच्छा तरीका वर्जनिंग है, यानी myfile_v1.2.js, लेकिन आसान तरीका है अपने एक्सपियर हेडर से सावधान रहना ( 10 से 10 साल का कोई अच्छा विकल्प कभी भी अच्छा विकल्प नहीं है)।

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

+0

आपका समाधान काम करता है :) धन्यवाद –

+0

आपका स्वागत है !!!, आप इसे यहां से अधिक अनुकूलित कर सकते हैं http://stackoverflow.com/documentation/magento/8010/के अनुकूलन-Magento के लिए गति # टी = 201612140842090229769 –

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