Questão Como posso fazer com que o Chrome pare de redirecionar o cache?


Eu estou trabalhando em um aplicativo da web que está usando redirects (para URLs bonitas).

Eu estou tentando depurar a lógica da maneira como os redirecionamentos estão funcionando. No entanto, o Google Chrome continua lembrando os redirecionamentos e mesmo depois de eu alterar o código, redirecionando da mesma forma.

Isso está dificultando muito a solução de problemas.

Por exemplo, se eu redirecionar /this para /that, em seguida, mude meu código para não redirecionar /this não mais. O Google Chrome ainda está redirecionando para /that. Como o redirecionamento é armazenado em cache ou algo assim. Existe uma maneira de desligar isso?


366


origem


Isso ainda acontece quando você reinicia? Deve parar depois de reiniciar com uma nova sessão - random♦
@random, reiniciar o cromo parece corrigi-lo. No entanto, eu geralmente tenho muitas janelas abertas (isto é: docs, conexões de banco de dados, tutoriais, a página em que estou trabalhando, etc.) Se estou resolvendo algo, pode levar várias tentativas antes de descobrir o que está acontecendo. Eu não consideraria ideal ter que continuar fechando todas as minhas janelas. Obrigado. - JD Isaacks
Solução alternativa: use 302 (temporário) redirecionamentos durante o teste e mude para 301 (permanente) quando terminar. (Advertência: Alguns navegadores (Firefox) armazenam até mesmo redirecionamentos 302 em cache quando vão de versões http para https da mesma página.) - TRiG
Entrando em um novo www.mywebsite/?someparam=somevalue funciona para mim - Mustafa
@ JDIsaacks você poderia usar um Chrome exclusivamente para depuração (ou seja, Chrome Canary) - athosbr99


Respostas:


O Google Chrome cache seus redirecionamentos 301. Para contornar isso e manter as guias abertas, você só precisa limpar o cache do navegador.

Menu do Chrome Chrome Menu > Configurações> Mostrar configurações avançadas ...> Privacidade> Clique Limpar dados de navegação ...

Qualquer outra coisa que você selecionar, verifique se "Imagens e arquivos em cache" é uma opção marcada.

Então clique Limpar dados de navegação e você deve ser capaz de retestar novamente.

Se você acabou de seguir o redirecionamento, só precisa excluir os dados da última hora.

Como alternativa, teste e desenvolva no modo de navegação anônima. Lá o cache é liberado depois que o navegador é fechado.


301



Versão mais recente do chrome, essa opção seria "Imagens e arquivos em cache" em vez de "Esvaziar o cache" - Dan R
Continuo sendo redirecionado, mesmo no modo de navegação anônima. - Gaia
@Gaia sim, isso parece ser problema no Chrome incógnito. Se você está apenas testando, você pode querer usar o Firefox para isso. Navegação privada do Firefox funciona bem :) - chhantyal
Note que o HTTP 301 é Movido Permanentemente então o armazenamento em cache da resposta é perfeitamente permitido. Se você não quiser que a resposta seja armazenada em cache, tente 302 ou 307. en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection - Michael Kjörling
O atalho de teclado para isso é Ctrl + Shift + Delete. - 0xcaff


Essa é a maneira certa de limpar a memória adesiva do Google Chrome para redirecionamentos sem limpar todos os seus dados de navegação (por resposta acima):

  1. Abra o Ferramentas de desenvolvimento painel (opçãocomandoEu no Mac ou ctrlmudançaEu no Windows)

  2. Clique e segure o ícone de recarga enter image description here

  3. Um menu será aberto

    enter image description here

  4. Escolha a terceira opção deste menu ("Empty Cache and Hard Reload")

PS: Para evitar ter que executar essas etapas toda vez que o redirecionamento é seguido pelo Chrome: marque a opção Desativar cache no DevTools e, enquanto o DevTools estiver aberto, o Google Chrome ignorará o cache de redirecionamento (por esta resposta)


127



Como um aparte: isso não está disponível em um Mac. - Arjan
isso nem sempre exclui redirecionamentos em cache - Claudiu Creanga
Está disponível no Mac, mas o menu só está disponível se você tiver as ferramentas de desenvolvimento abertas. Eu suponho que isso pode ser o mesmo no Windows. - Percy
@Arjan está disponível em um Mac ver superuser.com/questions/304589/… - Gaia
Mac OS X, Yosemite. Lutando com um redirecionamento permanente http para https, apenas esta opção funcionou. Todos os outros, incluindo o "Desativar cache (enquanto o DevTools está aberto)", não fizeram diferença. - Carles Sala


Não é uma solução perfeita, mas eu consegui impedir que o Chrome usasse o redirecionamento em cache passando uma cadeia de consulta falsa ou adicionando um parâmetro falso à string de consulta existente. Por exemplo, adicionando um simples ? até o final de uma URL que não tinha q string de consulta trabalhada para mim no Chrome 30 no Max OS X.


107



Sim, isso funciona. example.com torna-se example.com?. É o mais fácil do grupo - bfred.it
Este é um truque incrível. Eu suponho que você pode usar isso indefinidamente ?abc, ?abc2 etc ... - brentonstrine
Isso não funcionou para mim. Mesmo usando uma porta diferente (: 8080), ela mudou para https, o que parece ser um bug do Chrome. - jwadsack
Eu já estou fazendo a mesma coisa, mas ele não funciona sempre, às vezes eu preciso pressionar ctrl + shift + r (ctrl + f5) para obter a versão mais recente da página da web, ou páginas parciais incluídas dentro da página - M98
Se houver um caractere curinga em cache 301, isso pode não funcionar, já que é "lembrar" de encaminhar tudo depois do TLD. - dhaupin


Há um Erro do Chromium "wontfix" sobre isso,

Esse é o comportamento esperado.

Observe que:

  1. Você pode adicionar cabeçalhos de controle de cache a um 301 e nós os seguiremos (expiração etc)
  2. Se o recurso em questão for um sub-recurso, o recarregamento da página fará com que o redirecionamento seja revalidado com o servidor.
  3. Você não precisa perder todo o seu cache. Basta seguir o redirecionamento e excluir a última hora.

90



O que "exclui a última hora". significa? Como fazer isso? - Mikaël Mayer
@ MikaëlMayer Quando clica em "Histórico> Limpar dados de navegação", pode selecionar um período de tempo para remover dados ("a última hora", "semana passada", etc.) - dbr
Não..! Limpar dados de navegação de um site não remova o comportamento de redirecionamento 301. Não no Chromium 64.0.x - patricktokeeffe
A eliminação de "1 hora" faz com que você saia de todos os produtos e contas do Google. Que bom conselho ... - Luciano Fantuzzi
> Você não precisa perder todo o seu cache. Basta seguir o redirecionamento e excluir a última hora. Isso ainda é pior do que "excluir o último redirecionamento", que é o recurso que eles não consertam. - rox0r


Se você tiver a opção "Desativar o cache (enquanto o DevTools estiver aberto)" ativada no DevTools, basta ter o DevTools aberto o suficiente para ignorar o cache de redirecionamento, sem perder sua sessão constantemente.


63



observação: se devTools estiver aberto, há uma maneira rápida de excluir o cache: clique no botão atualizar com o botão direito e escolha recarregar completamente ;) - user65130
isso não funciona o tempo todo. Eu apaguei todo o meu cache e ainda redirecionando. Apenas com o modo de navegação anônima funciona e você obtém um comportamento consistente - Claudiu Creanga
Por que essa não é a melhor solução? os outros são terríveis por comparação! - Brian
Não funciona mais ... Provavelmente trabalhou em 2014 - Lord Loh.
@LordLoh Acabei de testar isso na versão mais recente do Chrome e funcionou exatamente como esperado. Com os devtools fechados, o redirecionamento é armazenado em cache. Recarregar a página com as ferramentas abertas não redireciona. - Mike Gossmann


O Chrome armazena em cache redirecionamentos HTTP e interrompe a verificação com o site se o redirecionamento tiver sido alterado. Isso pode ser frustrante, já que a maneira mais fácil de corrigir (visitar o site e forçar uma atualização completa) não pode ser usada porque o redirecionamento acontecerá antes de você acessar o link. Isto é um não corrigirá problema.

Para contornar isso, você pode limpar seus dados de navegação, conforme explicado Aqui ou você pode seguir os passos abaixo e evitar perder seu histórico.

  1. Abra as Ferramentas do desenvolvedor do Chrome dev-tools

  2. Clique em Configurações settings

  3. Verifica Desativar o cache (enquanto DevTools está aberto) disable

  4. Visite o site que você queria e o problema do cache será resolvido.


18



Você encontrará a opção "desativar cache" na guia de rede também, é a mesma opção. Para redirecionamentos de depuração, sugiro usar o "preserve log" também. - Trendfischer


Vá para chrome: // net-internals e na extrema direita, abra a lista suspensa e escolha "Limpar cache". A partir da versão 48, essa foi a única coisa que funcionou para eu limpar um 301 em cache (redirecionamento permanente).


14



Funciona no Chrome 56 - spencer.sm
Isso funcionou para mim, obrigado - David Van De Meer


Para limpar o cache de redirecionamento de uma única página no Chrome, Ver fonte e fazer uma atualização difícil (CTRL + SHIFT + R).

Isso funciona porque o navegador de origem não segue automaticamente os redirecionamentos 301.


7



Não funcionou para mim no Chrome 25 - swrobel
Isso não funciona se o redirecionamento for para todos Páginas. Eu tenho um www. -> não www. redirecionamento - para que o redirecionamento esteja no primeiro hit, não posso atualizar nada. Cada vez que eu tento ir para a página para atualizá-lo segue o 301 - então é tarde demais! - Ian Grainger
@Ian E se você digitar na fonte de endereço da barra de endereços: www.example.com? Isso permite que você atualize sem ser redirecionado? - Matthew Blackford
@MatthewBlackford AFAICT a mesma coisa, eu realmente obtenho a fonte da página redirecionada. Não tenho certeza se meu teste foi ótimo, apesar de TBH. Eu excluí o histórico de navegação para "corrigir" esse problema. - Ian Grainger
Isso só funciona para redirecionamentos de JavaScript e metatag. Redirecionamentos HTTP ainda são seguidos - bfred.it


Como descrito Aqui pode ser causado por HSTS

Para contornar isso, fiz o seguinte.

Na barra de endereço do Google Chrome, digite "chrome: // net-internals / # hsts".   muito abaixo de uma página é a caixa de texto do domínio QUERY - verifique se o seu site (localhost, por exemplo)   é conhecido para o navegador Se for, DELETE o domínio localhost usando   a caixa de texto acima Seu site deve funcionar agora usando HTTP antigo


6



Obrigado. Isso realmente ajuda com o cache súbito de redirecionamentos de https. - Ruberoid


domínios .dev são forçados a usar HTTPS no Chrome 63+

Desde o Chrome 63, até dezembro de 2017, todos os domínios terminados em .dev (e .foo) são forçados a usar HTTPS por meio de um cabeçalho HSTS (HTTP Strict Transport Security) pré-carregado.

Mais sobre isso aqui: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/


5



Este foi o meu culpado com certeza! Eu passo HORAS tentando descobrir o que diabos estava acontecendo. Obrigado por postar isso! - Jabari
Esta resposta precisa de mais votos. Pode não ser o problema que o questionador tinha, mas será para muitos desenvolvedores que encontrarão essa resposta nos resultados da pesquisa. - bp.


Se você quiser apenas verificar se os redirecionamentos estão funcionando como esperado, provavelmente é mais fácil usar uma ferramenta de linha de comando, como wget ou similar. Você pode inspecionar os cabeçalhos de resposta e os redirecionamentos não são armazenados em cache.


4