web-dev-qa-db-fra.com

Comment faire en sorte que Chrome arrête la mise en cache des redirections?

Je travaille sur une application Web qui utilise redirects (pour les jolies URL).

J'essaie de déboguer la logique dans la façon dont les redirections fonctionnent. Cependant, Google Chrome garde en mémoire les redirections et même après avoir modifié le code, redirige de la même manière.

Cela rend très difficile à dépanner.

Par exemple, si je redirige /this vers /that, changez mon code pour ne plus rediriger /this. Google Chrome redirige toujours vers /that. Comme la redirection est en cache ou quelque chose. Y a-t-il un moyen de désactiver cela?

400
JD Isaacks

Google Chrome va mettre en cache vos redirections 301 . Pour contourner ce problème et garder les onglets ouverts, il vous suffit d'effacer le cache de votre navigateur.

Menu Chrome Chrome Menu > Paramètres> Afficher les paramètres avancés ...> Confidentialité> Cliquez Effacer les données de navigation ...

Quoi que vous sélectionniez, assurez-vous que l'option "Images et fichiers en cache" est cochée.

Cliquez ensuite sur Effacer les données de navigation et vous devriez pouvoir effectuer un nouveau test.

Si vous venez de suivre la redirection, il vous suffit de supprimer les données de la dernière heure.

Vous pouvez également tester et développer en mode incognito. Là, le cache est vidé après la fermeture du navigateur.

318
random

Il s'agit de la meilleure preuve pour effacer la mémoire collante de Chrome pour les redirections sans effacer toutes vos données de navigation (méthode utilisée par la première réponse actuelle):

  1. Ouvrez le panneau Outils de développement (optioncommandi sur Mac ou ctrlshifti sous Windows)

  2. Cliquez et maintenez l'icône de rechargement enter image description here

  3. Un menu va s'ouvrir

    enter image description here

  4. Choisissez la 3ème option de ce menu ("Cache vide et rechargement dur")

Voici une excellente explication de comment ces 3 options diffèrent .

PS: pour éviter de devoir suivre ces étapes à chaque fois que la redirection est suivie par Chrome: cochez la case Désactiver le cache dans DevTools, et tant que DevTools est ouvert, Chrome ignore le cache de redirection (par cette réponse ).

144
Gaia

Ce n'est pas une solution parfaite, mais j'ai pu empêcher Chrome d'utiliser la redirection mise en cache en transmettant une chaîne de requête fictive ou en ajoutant un paramètre erroné à la chaîne de requête existante. Par exemple, l'ajout d'un simple ? à la fin d'une URL sans q chaîne de requête a fonctionné pour moi sur Chrome 30 sous Max OS X.

112
sradack

Il y a un "wontfix" bug de Chromium à ce sujet },

C'est le comportement attendu.

Notez que:

  1. Vous pouvez ajouter des en-têtes de contrôle de cache à un 301 et nous les suivrons (expiration, etc.)
  2. Si la ressource en question est une sous-ressource, le rechargement de la page entraînera une nouvelle validation de la redirection avec le serveur.
  3. Vous n'avez pas à perdre tout votre cache. Suivez simplement la redirection et supprimez la dernière heure.
90
dbr

Si l'option "Désactiver le cache (tant que DevTools est ouvert)" est activée dans les DevTools, le simple fait de l'ouvrir est suffisant pour contourner le cache de redirection, sans constamment jeter votre session.

66
Mike Gossmann

Chrome met en cache les redirections HTTP et arrête de vérifier avec le site si la redirection a été modifiée. Cela peut être frustrant, car le moyen le plus simple de corriger (visiter le site et imposer une actualisation forcée) ne peut pas être utilisé, car la redirection aura lieu avant que vous n'accédiez au lien. Ceci est un ne résoudra pas le problème .

Pour contourner ce problème, vous pouvez effacer vos données de navigation, comme expliqué ici ou vous pouvez suivre les étapes ci-dessous et éviter de perdre votre historique.

  1. Ouvrez les outils de développement Chrome dev-tools

  2. Cliquez dans les paramètres settings

  3. Check Désactive le cache (tant que DevTools est ouvert)  disable

  4. Visitez le site que vous vouliez et le problème de cache sera résolu.

20
Zanon

Allez à chrome: // net-internals et à l'extrême droite, ouvrez le menu déroulant et choisissez "Effacer le cache". À partir de la version 48, c'était la seule chose qui fonctionnait pour moi pour effacer un cache 301 (redirection permanente) mis en cache.

Mise à jour: Malheureusement, à compter de la version 71 (décembre 2018), Google a supprimé la fonctionnalité net-internals.

15
McGuireV10

Les domaines .dev sont obligés d'utiliser HTTPS sur Chrome 63+

Depuis Chrome 63, en décembre 2017, tous les domaines se terminant par .dev (et .foo) sont obligés d'utiliser HTTPS via un en-tête HTTP préchargé Strict Transport Security (HSTS).

Plus d'informations ici: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

7
Lucas Bustamante

Pour effacer le cache de redirection pour une seule page dans Chrome, Afficher le code source et effectuez une actualisation matérielle (CTRL + SHIFT + R).

Cela fonctionne car le navigateur source ne suit pas automatiquement les redirections 301.

7
Matthew Blackford

Comme décrit ici pourrait être causé par HSTS

Pour contourner cela, j'ai fait ce qui suit.

Dans la barre d'adresse de Chrome, tapez "chrome: // net-internals/# hsts". Au bas de la page se trouve la zone de texte du domaine QUERY - vérifiez que votre site (localhost, par exemple) est connu du navigateur. Si c'est le cas, supprimez localhost. domaine utilisant la zone de texte ci-dessus Votre site devrait maintenant fonctionner avec du vieux HTTP ordinaire

6
Tonino

Si vous voulez juste vérifier que les redirections fonctionnent comme prévu, il est probablement plus facile d'utiliser un outil de ligne de commande comme wget ou similaire. Vous pouvez inspecter les en-têtes de réponse et les redirections ne sont pas mises en cache.

4
Tom Wilson

Dans Chrome ou Firefox, vous pouvez actualiser la redirection en tapant "view-source: redirect.yoursite.com" et en appuyant sur Entrée. Ensuite, actualisez cette page. Cela devrait forcer Chrome ou Firefox à actualiser la redirection.

4
mrbofus

Dans le but de développer, je vous recommande dans Chrome d’ouvrir les paramètres de DevTools et de cocher la case "Désactiver le cache". Ensuite, les redirections 30x ne sont pas mises en cache et vous pouvez déboguer des fichiers .htaccess et ainsi de suite!  enter image description here

3
lukyer

méthode la plus simple, hard refresh. tenez Ctrl + R quelques secondes. Cela efface les redirections ainsi que les ressources statiques.

1
Ryu_hayabusa
  1. Aller au chrome://settings/search#clear%20browsing%20data

  2. Cliquez sur "Effacer les données de navigation"

  3. Cochez "Images et fichiers en cache" (et décochez les autres si vous le souhaitez)

  4. Cliquez sur "Effacer les données de navigation"

enter image description here

1
guaka

Si vous ne voulez pas perdre tout votre cache et que votre redirection est toujours bloquée dans le cache, vous pouvez essayer de consulter la version de view-source: of the url. Cela a rafraîchi le cache de redirection de la même URL pour moi.

0
Ogier Schelvis

J'ai essayé toutes les réponses sur cette page mais aucune n'a fonctionné jusqu'à ce que je lance flushdns sur la fenêtre de la ligne de commande de Windows.

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

Pour votre information, j'avais déjà vérifié Disable cache comme mentionné dans this answer.

0
Damodar Bashyal