Mettre en cache les fichiers statiques

rouge14 - 7 févr. 2016 à 21:39 - Dernière réponse : chalkywhite 136 Messages postés mercredi 31 août 2016Date d'inscription 24 juin 2018 Dernière intervention
- 11 févr. 2018 à 10:42
Bonsoir à tous,

je souhaite vos lumières car je n'arrive pas à mettre en place un système de mise en cache, car je suis sûr que ça m'apporterais un gain de performance pour la petite application WEB métier que je maintiens. (en mettant en cache côté navigateur les scripts javascript openlayers.js, jquery.js, mes fonctions persos, les feuilles de styles et les images).
voilà ma démarche de test :

déjà la config de mon serveur via un phpinfo()
Apache Version Apache/2.2.22 (Debian)
Apache API Version 20051115

j'ai lancé les commandes suivantes pour activer
sudo a2enmod expires
sudo a2enmod headers
service apache2 restart


je relance vérifie si les modules sont bien chargés toujours avec un phpinfo()
Loaded Modules core mod_log_config mod_logio mod_version prefork http_core mod_so mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_expires mod_headers mod_mime mod_negotiation mod_php5 mod_reqtimeout mod_rewrite mod_setenvif mod_status

donc c'est ok
Ensuite j'ai crée un fichier .htaccess à la racine du site pour appliquer une règle de cache sur mes feuilles de styles


<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
ExpiresByType text/css A172800
</IfModule>

et là je vérifie les transactions effectuées avec firebug, cependant le navigateur demande systématiquement les fichiers au serveur, requête status 200 et jamais 304. Pourtant dans le champs d'expiration est bien donnée dans la requête par le serveur.
Je n'actualise pas la page avec F5, j'ai fait une page html simple qui charge un fichier .css sur le serveur et un lien href qui relance la page quand je le clique.

Réponse

Accept-Ranges
bytes
Cache-Control
max-age=172800

Connection
Keep-Alive
Content-Encoding
gzip
Content-Length
262
Content-Type
text/css
Date
Sun, 07 Feb 2016 13:26:56 GMT
Etag
"28191-1ec-52b2df98e6c27"
Expires
Tue, 09 Feb 2016 13:26:56 GMT

Keep-Alive
timeout=5, max=99
Last-Modified
Sun, 07 Feb 2016 13:22:23 GMT
Server
Apache/2.2.22 (Debian)
Vary
Accept-Encoding


Requête

Accept
text/css,*/*;q=0.1
Accept-Encoding
gzip, deflate
Accept-Language
fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
Connection
keep-alive
Host
192.168.1.66:8081
Referer
http://192.168.1.66:8081/test/test.html
User-Agent
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0



J'ai testé d'autres configuration en vain

<IfModule mod_expires.c>
<FilesMatch "\.(jpg|gif|png|pdf|css|js)$">
ExpiresActive On
ExpiresDefault "access plus 1 month"
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
</IfModule>
FileETag none

Grand snif
Je ne comprend pas pourquoi mon navigateur (Firefox), ne tient pas compte de la configuration... je n'ai pas trouvé de solution.
Afficher la suite 

Votre réponse

1 réponse

chalkywhite 136 Messages postés mercredi 31 août 2016Date d'inscription 24 juin 2018 Dernière intervention - 11 févr. 2018 à 10:42
0
Merci
Es-tu sur que ce n'est pas ton hébergeur qui bloque ? A un moment j'avais des soucis de cache sur des 1&1 Mutu !
Commenter la réponse de chalkywhite

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.