web-dev-qa-db-fra.com

Problème avec les en-têtes Expires / Cache-Control

J'utilise Apache 2.2.16.

J'ai le fichier HTML suivant dans mon dossier htdocs:

<html>
 <link media="screen" type="text/css" href="/css/test.css" rel="stylesheet" />
 <body>XXXX</body>
</html>

J'essaie de créer le cache de fichiers CSS dans mon navigateur afin qu'il n'en fasse pas une autre demande, à l'exception du premier chargement de page.

Cependant, chaque fois que j'appuie sur l'actualisation, je constate que le fichier CSS est chargé à nouveau depuis le serveur. Je vois 200 codes de réponse pour le fichier dans les journaux de mon serveur.

J'ai le suivant dans mon fichier httpd.conf:

<LocationMatch "\.(css)$">
 Header set Cache-Control "max-age=2592000"
 Header set Expires "Thu, 15 Apr 2020 20:00:00 GMT"
 Header unset Last-Modified
 Header set Content-Type text/css
 Header unset ETag
</LocationMatch>

Voici les en-têtes de réponse rapportés par Firebug:

Date Mon, 29 Nov 2010 10:48:49 GMT
Server Apache/2.2.16 (Win32)
Accept-Ranges bytes
Content-Length 18107
Cache-Control max-age=2592000
Expires Thu, 15 Apr 2020 20:00:00 GMT
Content-Type text/css
Keep-Alive timeout=5, max=97
Connection Keep-Alive

J'ai lu quelques articles sur la définition des en-têtes de cache, mais je ne vois pas comment le faire fonctionner.

Tout conseil grandement apprécié.

2
A_M

J'utilise les éléments suivants:

ExpiresActive on
ExpiresDefault "access plus 24 hours"
ExpiresByType image/jpg "access plus 1 months"
ExpiresByType image/gif "access plus 1 months"
ExpiresByType image/jpeg "access plus 1 months"
ExpiresByType image/png "access plus 1 months"
ExpiresByType text/css "access plus 1 months"
ExpiresByType text/javascript "access plus 1 months"
ExpiresByType application/javascript "access plus 1 months"
ExpiresByType application/x-shockwave-flash "access plus 24 hours"

C'est assez facile à maintenir.

1
Vergil Penkov