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?
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 > 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.
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):
Ouvrez le panneau Outils de développement (optioncommandi sur Mac ou ctrlshifti sous Windows)
Cliquez et maintenez l'icône de rechargement
Un menu va s'ouvrir
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 ).
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.
Il y a un "wontfix" bug de Chromium à ce sujet },
C'est le comportement attendu.
Notez que:
- Vous pouvez ajouter des en-têtes de contrôle de cache à un 301 et nous les suivrons (expiration, etc.)
- 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.
- Vous n'avez pas à perdre tout votre cache. Suivez simplement la redirection et supprimez la dernière heure.
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.
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.
Ouvrez les outils de développement Chrome
Cliquez dans les paramètres
Check Désactive le cache (tant que DevTools est ouvert)
Visitez le site que vous vouliez et le problème de cache sera résolu.
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.
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/
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.
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
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.
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.
méthode la plus simple, hard refresh. tenez Ctrl
+ R
quelques secondes. Cela efface les redirections ainsi que les ressources statiques.
Aller au chrome://settings/search#clear%20browsing%20data
Cliquez sur "Effacer les données de navigation"
Cochez "Images et fichiers en cache" (et décochez les autres si vous le souhaitez)
Cliquez sur "Effacer les données de navigation"
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.
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.