web-dev-qa-db-fra.com

La mise en cache de Chrome comme un navigateur fou

J'ai un service Web qui, comme la plupart des autres, utilise des fichiers js et css. J'utilise l'ancienne astuce consistant à ajouter un numéro de version au fichier js et css comme; ? v = 123 et cela change chaque fois que nous mettons à jour le service en production.

Maintenant, cela fonctionne très bien sur tous les navigateurs, sauf pour Chrome. Chrome semble préférer la version en cache à la nouvelle et par conséquent ignorer la variable ajoutée. Dans certains cas, le forcer à actualiser le cache (cmd + r/ctrl + f5) ne suffisait pas et je devais entrer dans les options et vider le cache pour pouvoir charger le nouveau contenu.

Quelqu'un at-il rencontré ce problème avec Chrome? Et si oui, quelle était la résolution du problème?

28
Magnus

Chrome devrait certainement traiter les requêtes comportant différentes chaînes de requête comme des requêtes différentes; un résultat mis en cache pour style.css?v=123 ne doit jamais être utilisé pour style.css?v=124. Si vous constatez un comportement différent, veuillez enregistrer un bogue à l'adresse http://new.crbug.com/ et poster l'ID de bogue ici.

Cela dit, je voudrais d’abord vérifier si le page a été mis en cache plus longtemps que prévu. Si une nouvelle version de la page elle-même n'a pas été téléchargée, le système demanderait toujours ?v=123 car le code HTML n'aurait pas changé. Si vous envoyez des en-têtes de cache de longue durée avec la page, il est certainement possible que Chrome la mette en cache de manière plus agressive que prévu. Si tel est le comportement que vous constatez, veuillez indiquer http://crbug.com/8742 } pour les mises à jour.

12
Mike West

J'ai aussi eu la même expérience

Vous pouvez utiliser les touches Ctrl + Maj + R pour une navigation sans cache dans Chrome et Mozilla.

3
Mitesh Anand

J'ai eu cette expérience aussi.

Je gère un site d'adhésion qui affiche un contenu tel que "Vous devez être connecté en tant que membre Gold pour voir ce contenu" s'il n'est pas connecté ou s'il tente d'afficher du contenu non autorisé par son niveau d'adhésion. Mais même si l'utilisateur est connecté, l'utilisateur verra toujours "Vous devez vous connecter", en raison de la mise en cache agressive de Google Chrome. Dans Firefox, toutefois, cela fonctionne bien lorsque je teste la connexion aux 5 niveaux d’adhésion, chacun affichant le contenu approprié.

Bien que le problème de la mise en cache de Chrome puisse être résolu en effaçant le cache chaque fois que l'utilisateur se connecte et se connecte, il serait vraiment ennuyant d'adopter cette approche.

1
Anthony Navarro