2010-11-10 11 views
31

J'ai récemment analysé mon site Web avec addon pagespeed sur firebug. Il m'a suggéré de définir l'expiration sur CSS, JS et les fichiers image. Je me demande comment je fais cela?Comment puis-je définir l'expiration sur CSS, JS et Images

+1

Cela dépend vraiment de ce que les plates-formes que vous utilisez: IIS6/7, Apache, etc. – jordanbtucker

+0

J'utilise Apache comme mon serveur web. Je suis l'affichage de ces fichiers via mes fichiers php ou à l'intérieur des fichiers php – KoolKabin

Répondre

40

C'est celui que j'utilise pour fixer exactement la même chose quand je courais le PageSpeed ​​Addon:

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

Cela va dans votre fichier .htaccess.

lire sur cette page pour plus d'informations sur la façon de définir le cache pour les types de fichiers supplémentaires et/ou modifier la longueur du cache:

http://www.askapache.com/htaccess/apache-speed-cache-control.html

+3

J'ai eu l'erreur 500 interne du serveur. Je pense que mon apache header_module n'est pas activé. Est-ce que j'ai l'autre façon? – KoolKabin

+4

Avez-vous eu une erreur 500 et acceptez la réponse? –

+0

merci buddy travaille aussi pour moi même après 3 ans –

0

Ce que je fais est de créer un fichier « expires.conf "et l'inclure dans la configuration du fichier de site d'Apache. Vous pouvez inclure dans .htaccess si vous le souhaitez. Mon expire:

<IfModule mod_expires.c> 
    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 text/html "access 1 month" 
    ExpiresByType application/pdf "access 1 month" 
    ExpiresByType text/x-javascript "access 1 month" 
    ExpiresByType application/x-shockwave-flash "access 1 month" 
    ExpiresByType image/x-icon "access 1 year" 
    ExpiresDefault "access 1 month" 
</IfModule> 

Vous devez activer le expires module apache.

-2

Mieux vaut (qui se trouve à http://www.paulund.co.uk/set-expire-headers-in-htaccess, mais comme 0 seconds travail na pas, j'ai changé à 1 seconds)

# These are pretty far-future expires headers 
# They assume you control versioning with cachebusting query params like: <script src="application.js?20100608"> 
# Additionally, consider that outdated proxies may miscache 
# 
# www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/ 
# If you don`t use filenames to version, lower the css and js to something like "access plus 1 week" 

<IfModule mod_expires.c> 
    ExpiresActive on 

# Perhaps better to whitelist expires rules? Perhaps. 
    ExpiresDefault       "access plus 1 month" 

# cache.appcache needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5) 
    ExpiresByType text/cache-manifest  "access plus 1 seconds" 


# Your document html 
    ExpiresByType text/html     "access plus 1 seconds" 

# Data 
    ExpiresByType text/xml     "access plus 1 seconds" 
    ExpiresByType application/xml   "access plus 1 seconds" 
    ExpiresByType application/json   "access plus 1 seconds" 

# RSS feed 
    ExpiresByType application/rss+xml  "access plus 1 hour" 

# Favicon (cannot be renamed) 
    ExpiresByType image/x-icon    "access plus 1 week" 

# Media: images, video, audio 
    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" 
    ExpiresByType video/ogg     "access plus 1 month" 
    ExpiresByType audio/ogg     "access plus 1 month" 
    ExpiresByType video/mp4     "access plus 1 month" 
    ExpiresByType video/webm    "access plus 1 month" 

# HTC files (css3pie) 
    ExpiresByType text/x-component   "access plus 1 month" 

# Webfonts 
    ExpiresByType font/truetype    "access plus 1 month" 
    ExpiresByType font/opentype    "access plus 1 month" 
    ExpiresByType application/x-font-woff "access plus 1 month" 
    ExpiresByType image/svg+xml    "access plus 1 month" 
    ExpiresByType application/vnd.ms-fontobject "access plus 1 month" 

# CSS and JavaScript 
    ExpiresByType text/css     "access plus 1 seconds" 
    ExpiresByType application/javascript "access plus 1 month" 
    ExpiresByType text/javascript   "access plus 1 month" 

    <IfModule mod_headers.c> 
    Header append Cache-Control "public" 
    </IfModule> 

</IfModule> 
5

je voudrais ajouter cette solution pour ceux qui recherchent ce .. ..

son fonctionne également très bien ... en utilisant .htaccess

https://webmasters.stackexchange.com/a/5275/37765

<FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$"> 
    ExpiresActive On 
    ExpiresDefault A2592000 
</FilesMatch> 
+0

Merci beaucoup de donner cette solution ..... –

+0

Cela a fonctionné pour moi. Cependant, je veux savoir ce qui se passe si un site se brise après l'ajout de ce code? – Rahul