web-dev-qa-db-fra.com

Chrome continue de charger un ancien cache de mon site Web

Je rencontre ce problème étrange où mon navigateur Chrome charge toujours une ancienne version de mon site Web dont le code n'existe même plus sur mon serveur. Je suppose que c'est un problème de cache typique.

J'ai essayé de nettoyer le cache du navigateur, d'utiliser le mode igcognito et de nettoyer le cache DNS. L'ancienne page en cache est toujours en cours de chargement.

Ce problème semble avoir été débattu sur ce groupe Google pendant trois ans, mais il n’existe toujours pas de solution. https://productforums.google.com/forum/#!topic/chrome/xR-6YAkcASQ

L'utilisation de Firefox ou de tout autre navigateur Web fonctionne parfaitement.

Cela ne m'arrive pas juste. Tous mes collègues connaissent le même problème sur mon site Web.

14
zeroliu
<?php Header("Cache-Control: max-age=3000, must-revalidate"); ?>

Vous pouvez implémenter un script PHP qui doit être la première ligne de code de votre fichier d'index. C'est un en-tête http généralement émis par les serveurs Web. Vous pouvez également renommer la ressource considérée comme "périmée". Ce tutoriel vous donnera plus de détails. https://www.mnot.net/cache_docs/

7
Eli Duhon

Une solution à court terme pour afficher la nouvelle version de votre site consisterait normalement à vider le cache et à recharger. Pour une raison quelconque, cela ne fonctionne pas toujours sur Chrome. Cette solution à court terme ne résoudra pas le problème pour tous les utilisateurs de votre site, elle vous permettra simplement de voir la nouvelle version de votre site. 

L'ajout de numéros de version aux fichiers CSS et JS vous permettra, ainsi qu'à tout autre utilisateur, de voir la version la plus récente de votre site. Un numéro de version forcera tout navigateur à ne pas charger à partir du cache de l'ordinateur personnel d'un utilisateur et à charger les fichiers réels sur le serveur, si le numéro de version diffère de celui du cache de l'utilisateur.

Donc, si vous avez ces fichiers sur votre serveur: 

ExJS.js
ExCSS.css

et les changer pour:

ExJS.js?v=1.01
ExCSS.css?v=1.01

la nouvelle version de ces fichiers se chargera dans n’importe quel navigateur.

Normalement, un navigateur charge toujours le fichier HTML à partir du serveur, mais vous pouvez utiliser certaines balises méta HTML pour vous assurer que la version HTML la plus récente sera chargée pour tout utilisateur: 

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

Il existe également des moyens de s'assurer que les fichiers dans d'autres langues chargent toujours la version la plus récente, ce qui est discuté sur ce post: 

Comment ajouter un numéro de version à un fichier HTML (pas seulement aux fichiers css et js)

1
a dubois

changer le nom des images et faire les changements de nom d'image nécessaires dans un fichier html .. trouvé cette solution rapide pour mon site web

0
Shruti