J'ai un gros problème avec le cache de chrome. Je suis en train de construire un système pour mes clients. Tous sont construits sur angular donc au début il y a toujours un fichier index.html. Avec la nouvelle version, je change la balise scripts en ex. scripts.2.1.1.js
dans le fichier index.html. J'ai aussi :
<FilesMatch "\.(html)$">
Header set Cache-Control "max-age=1, public"
</FilesMatch>
dans mon fichier htaccess.
Mais chrome semble l'ignorer. Chaque fois que je tape l'adresse url, j'ai l'ancienne version, mais dans le code source, j'ai des balises vers les nouveaux scripts. Lorsque j'appuie sur F5, la nouvelle version est chargée, mais lorsque je ferme l'onglet du navigateur et que je tape à nouveau l'url, j'ai à nouveau l'ancienne version ?
Qu'est-ce qui ne va pas ? Comment se débarrasser du cache ? Je ne veux pas d'une solution de navigateur (vider le cache). Je ne peux pas forcer mes clients à le faire. Je veux une solution côté serveur. Existe-t-il une solution ?
Solution :
<FilesMatch "\.(html|js|css)$">
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</FilesMatch>