Je vais modifier mes fichiers JS mais cela ne changera pas vraiment dans le navigateur, je dois renommer les fichiers à chaque fois pour qu'il les recharge. Existe-t-il une sorte de commande .htaccess que je peux ajouter ou quelque chose pour empêcher la mise en cache?

Il met même en cache mon noyau dur de pages html. J'ai besoin de rouvrir tout mon navigateur pour voir les changements. Serait-ce peut-être un problème de serveur?

133
Howdy_McGee 6 déc. 2011 à 01:56

12 réponses

Meilleure réponse

Vous pouvez cliquer sur l'icône des paramètres dans le coin supérieur droit ... | Plus d'outils | Outils pour les développeurs | Réseau | Désactiver le cache (lorsque DevTools est ouvert)

Pour Windows, il s'agit de F12 ou CTRL + SHIFT + I tandis que sur mac CMD + SHIFT + I ouvre DevTools.

Nouveau chemin pour la mise à jour de Chrome de septembre 2018:

Cliquez sur l'icône des paramètres dans le coin supérieur droit ... | Paramètres | Préférences | Outils pour les développeurs | Réseau | Désactiver le cache (lorsque DevTools est ouvert)

198
Jake Bourne 23 sept. 2018 à 17:34

Le problème est que Chrome doit avoir must-revalidate dans l'en-tête Cache-Control` afin de revérifier les fichiers pour voir s'ils doivent être récupérés.

Vous pouvez toujours SHIFT-F5 et forcer Chrome à s'actualiser, mais si vous souhaitez résoudre ce problème sur le serveur, incluez cet en-tête de réponse:

Cache-Control: must-revalidate

Cela indique à Chrome de vérifier auprès du serveur et de voir s'il existe un fichier plus récent. S'il existe un fichier plus récent, il le recevra dans la réponse. Sinon, il recevra une réponse 304 et l'assurance que celle du cache est à jour.

Si vous ne définissez PAS cet en-tête, en l'absence de tout autre paramètre qui invalide le fichier, Chrome ne vérifiera pas avec le serveur pour voir s'il existe une version plus récente.

Voici un billet de blog qui aborde le problème plus en détail.

3
AgilePro 28 août 2018 à 01:04

Un moyen plus rapide de le faire consiste à cliquer avec le bouton droit sur l'icône d'actualisation à côté de la barre d'adresse et à choisir Vider le cache et recharger dur

Assurez-vous simplement que les outils de développement de Chrome sont ouverts. (Appuyez sur F12) Au fait ... Cette astuce ne fonctionne que sur Chrome pour Windows, Ubuntu et Mac OS

59
Nick Jaden Williams 26 juin 2017 à 12:15

Ajoutez quelque chose comme script.js?a=[random Number] avec le nombre aléatoire généré par PHP.

Avez-vous essayé expire = 0, le pragma "no-cache" et "cache-control = NO-CACHE"? (Je ne sais pas ce qu'ils disent des scripts).

12
EGOrecords 5 déc. 2011 à 22:02

Étapes rapides:

1) Ouvrez le tableau de bord des outils de développement en allant dans le menu Chrome -> Outils -> Outils de développeur

2) Cliquez sur l'icône des paramètres sur le côté droit (c'est un rouage!)

3) Cochez la case "Désactiver le cache (lorsque DevTools est ouvert)"

4) Maintenant, alors que le tableau de bord est en place, appuyez simplement sur Actualiser et JS ne sera pas mis en cache!

6
StackG 1 mai 2014 à 11:23

Quelques idées:

  1. Lorsque vous actualisez votre page dans Chrome, effectuez un CTRL + F5 pour effectuer une actualisation complète.
  2. Même si vous définissez l'expiration sur 0, il sera toujours mis en cache pendant la session. Vous devrez fermer et rouvrir votre navigateur à nouveau.
  3. Assurez-vous que lorsque vous enregistrez les fichiers sur le serveur, les horodatages sont mis à jour. Chrome émettra d'abord une commande HEAD au lieu d'un GET complet pour voir s'il a besoin de télécharger à nouveau le fichier complet, et le serveur utilise l'horodatage pour le voir.

Si vous souhaitez désactiver la mise en cache sur votre serveur, vous pouvez faire quelque chose comme:

Header set Expires "Thu, 19 Nov 1981 08:52:00 GM"
Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
Header set Pragma "no-cache"

Dans .htaccess

11
Mike Christensen 5 déc. 2011 à 22:07
<Files *>
Header set Cache-Control: "no-cache, private, pre-check=0, post-check=0, max-age=0"
Header set Expires: 0
Header set Pragma: no-cache
</Files>
1
Alfabravo 5 déc. 2011 à 22:25

J'obtenais le même fichier CSS lorsque je navigue sur le site Web (sur le serveur de la société d'hébergement avec un domaine réel) et je n'ai pas pu obtenir la version mise à jour sur Chrome. J'ai pu obtenir la version mise à jour du fichier lorsque je l'ai parcourue sur Firefox. Aucune de ces réponses n'a fonctionné pour moi. J'ai également les fichiers du site Web sur ma machine et je parcours le site avec localhost en utilisant mon serveur apache local. J'ai arrêté mon serveur Apache et j'ai pu obtenir le fichier mis à jour. D'une manière ou d'une autre, mon serveur local Apache jouait avec le cache Chrome. J'espère que cela aide quelqu'un car il m'a été très difficile de résoudre ce problème.

0
Alp Hancıoğlu 23 mars 2017 à 07:02

Je sais que c'est une "vieille" question. Mais les maux de tête avec la mise en cache ne le sont jamais. Après des tas d'essais et d'erreurs, j'ai constaté que l'un de nos fournisseurs d'hébergement Web avait via CPanel cette application appelée Cachewall. Je viens de cliquer sur Activer le mode de développement et ... voilà !!! Cela a tout de suite mis fin à la longue douleur ressentie :) J'espère que cela aide quelqu'un d'autre ... R

1
Ramon Araujo 8 févr. 2018 à 02:05

Lors de la mise à jour de mes applications Web, je vais soit utiliser un gestionnaire pour renvoyer un seul fichier JS pour éviter les hits massifs sur mon serveur, soit leur ajouter une petite chaîne de requête:

<script type="text/javascript" src="/mine/myscript?20111205"></script>
3
Ryan Ternier 5 déc. 2011 à 22:06

Vous pouvez ouvrir une fenêtre de navigation privée à la place. Le passage à une fenêtre de navigation privée a fonctionné pour moi lorsque la désactivation du cache dans une fenêtre Chrome normale n'a toujours pas rechargé un fichier JavaScript que j'avais modifié depuis le dernier cache.

https://www.quora.com/Does-incognito-mode-on-Chrome-use-the-cache-that-was-previously-stored

0
jones-chris 16 févr. 2018 à 21:20

Maintenez la touche Maj enfoncée tout en cliquant sur le bouton Recharger.

22
StilesCrisis 5 déc. 2011 à 22:02
8392441