Como posso fazer o Chrome parar de fazer o cache de redirecionamentos?


416

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

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 alterar o código, redirecionamos da mesma maneira.

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

Por exemplo, se eu redirecionar /thispara /that, altere meu código para NÃO redirecionar /thismais. O Google Chrome ainda está redirecionando para /that. Como o redirecionamento é armazenado em cache ou algo assim. Existe uma maneira de desativar isso?


Isso ainda acontece quando você reinicia? Ele deve parar depois que você reiniciar com uma nova sessão
random

1
@ aleatório, reiniciar o chrome parece corrigi-lo. No entanto, normalmente tenho muitas janelas abertas (por exemplo: documentos, conexões db, tutoriais, a página em que estou trabalhando, etc.) Se estiver solucionando problemas, podem ser necessárias várias tentativas antes de descobrir o que está acontecendo. Eu realmente não consideraria ideal ter que fechar todas as minhas janelas. Obrigado.
JD Isaacks

2
Solução alternativa: use redirecionamentos 302 (temporários) durante o teste e alterne para 301 (permanente) quando terminar. (Advertência: alguns navegadores (Firefox) armazenarão em cache até 302 redirecionamentos quando passarem das versões http para https da mesma página).
TRiG

1
Entrando em uma nova www.mywebsite/?someparam=somevalueobra para mim
Mustafa

1
@JDIsaacks você poderia usar um Chrome exclusivamente a depuração (ie Chrome Canary)
athosbr99

Respostas:


329

O Google Chrome armazenará em cache seus redirecionamentos 301 . Para contornar isso e manter as guias abertas, basta limpar o cache do navegador.

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

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

Em seguida, clique em Limpar dados de navegação e você poderá testar novamente.

Se você acabou de seguir o redirecionamento, precisará 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.


3
Versão mais recente do Chrome, esta opção seria "Em cache imagens e arquivos" em vez de "Esvaziar o cache"
Dan R

23
Continuo sendo redirecionado, mesmo no modo de navegação anônima.
Gaia

2
@ Gaia sim, isso parece ser um problema no Chrome anônimo. Se você está apenas testando, convém usar o Firefox para isso. Firefox navegação privada funciona :) bem
chhantyal

10
Observe que o HTTP 301 é movido permanentemente, portanto a resposta em cache é perfeitamente permitida. Se você não deseja que a resposta seja armazenada em cache, tente 302 ou 307. en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
um CVn

7
O atalho de teclado para isso é Ctrl+ Shift+ Delete.
0xcaff

151

Esta é a maneira mais segura de limpar a memória persistente do Chrome para redirecionamentos sem limpar todos os seus dados de navegação (método usado pela resposta principal atual):

  1. Abra o painel Ferramentas do desenvolvedor ( optioncommandino Mac ou ctrlshiftino Windows)

  2. Clique e segure o ícone recarregar insira a descrição da imagem aqui

  3. Um menu será aberto

    insira a descrição da imagem aqui

  4. Escolha a terceira opção neste menu ("Cache vazio e recarga forçada")

Aqui está uma excelente explicação de como essas três opções diferem .

PS: para evitar ter que executar essas etapas sempre que o redirecionamento for seguido pelo Chrome: marque desativar o cache no DevTools e, enquanto o DevTools estiver aberto, o Chrome ignorará o cache de redirecionamento (de acordo com esta resposta )


1
Como um aparte: isso não está disponível em um Mac.
Arjan4

5
este cache nem sempre apagar redireciona
Claudiu Creanga

7
Está disponível no Mac, mas o menu só está disponível se você tiver as ferramentas de desenvolvimento abertas. Presumo que isso possa ser o mesmo no Windows.
228 Percy

1
O @Arjan está disponível em um Mac, veja superuser.com/questions/304589/…
Gaia

4
Mac OS X, Yosemite. Lutando com um redirecionamento permanente de http para https, apenas essa opção funcionou. Todos os outros, incluindo o "Desativar cache (enquanto o DevTools está aberto)", não fizeram diferença.
Carles Sala

115

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


10
Sim, isso funciona. example.comtorna-se example.com?. É o mais fácil do grupo
fregante

2
Este é um truque incrível. Eu suponho que você pode usar este indefinidamente ?abc, ?abc2etc ...
brentonstrine

2
Isso não funcionou para mim. Mesmo usando uma porta diferente (: 8080), ela foi alterada para https, que parece um bug do Chrome.
jwadsack

Já estou fazendo a mesma coisa, mas nem sempre funciona, às vezes 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 na página
M98

Se houver um curinga em cache 301, isso pode não funcionar, pois é "lembrar" de encaminhar tudo após o TLD.
Dhupin

92

Há um bug 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, recarregar a página fará com que o redirecionamento seja re-validado com o servidor.
  3. Você não precisa perder todo o cache. Basta seguir o redirecionamento e excluir a última hora.

O que "exclui a última hora". significa? Como fazer isso?
Mikaël Mayer

1
@ MikaëlMayer Ao clicar em "Histórico> Limpar dados de navegação", você pode selecionar um período para remover os dados ("a última hora", "a semana passada" etc)
dbr

Não..! Limpar os dados de navegação de um site não removerá o comportamento de redirecionamento 301. Não no Chromium 64.0.x qualquer maneira
patricktokeeffe

Limpar "1 hora" faz com que você saia de todos os produtos e contas do Google. Que conselho bom ...
Luciano Fantuzzi

> Você não precisa perder todo o 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 corrigiram.
rox0r

66

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


9
Atenção: se DevTools está aberto, há uma maneira rápida de eliminar cache: clique no botão de atualização com o botão direito e escolha completa de recarga;)
user65130

5
isso não funciona o tempo todo. Eu apaguei todo o meu cache e ainda o redirecionei. Somente com o modo incógnito ele funciona e você terá um comportamento consistente
Claudiu Creanga

2
Por que essa não é a melhor solução? os outros são terríveis em comparação!
Brian

4
Não funciona mais ... Provavelmente funcionou em 2014
Lord Loh.

@LordLoh. Eu apenas tentei isso na versão mais recente do Chrome e funcionou exatamente como o esperado. Com os devtools fechados, o redirecionamento é armazenado em cache. Recarregar a página com as ferramentas abertas não redireciona.
Mike Gossmann 01/09/16

20

O Chrome armazena em cache os redirecionamentos HTTP e para de verificar com o site se o redirecionamento foi alterado. Isso pode ser frustrante, pois a maneira mais fácil de corrigir (visitar o site e forçar uma atualização forçada) não pode ser usada porque o redirecionamento ocorrerá antes de você acessar o link. Este não é um problema corrigido .

Para contornar isso, limpe os dados de navegação, conforme explicado aqui, ou siga as etapas abaixo e evite perder seu histórico.

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

  2. Clique em Configurações configurações

  3. Marque Desativar cache (enquanto o DevTools está aberto) desabilitar

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


2
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 "preservar log" também.
Trendfischer

15

Vá para chrome: // net-internals e, na extremidade direita, abra o menu suspenso e escolha "Limpar cache". Na versão 48, essa era a única coisa que funcionava para limpar um 301 em cache (redirecionamento permanente).

Atualização: infelizmente, a partir da versão 71 (dezembro de 2018), o Google removeu o recurso net-internals.


1
Funciona no Chrome 56
spencer.sm 09/02

Ainda funciona no Chrome 67
SCO

Não funciona no Chrome 71. O visualizador de eventos net-internals e a funcionalidade relacionada foram removidos.
userlond

8

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

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

Mais informações aqui: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/


Este foi o meu culpado, com certeza! Passo HOURS 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 teve, mas será para muitos desenvolvedores que encontrarão essa resposta nos resultados da pesquisa.
bp.

Deus! Quem poderia ter uma idéia tão brilhante!
Pavel Niedoba

7

Para limpar o cache de redirecionamento de uma única página no Chrome, visualize o código - fonte e faça uma atualização definitiva (CTRL + SHIFT + R).

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


4
Não funcionou para mim no Chrome 25
swrobel 20/03

3
Isso não funciona se o redirecionamento for para todas as páginas. Eu tenho um www. -> não www. redirecionar - para que o redirecionamento seja no primeiro hit, então não consigo atualizar nada. Cada vez que tento ir para a página para atualizar, segue o 301 - então é tarde demais!
Ian Grainger

1
@Ian E se você digitar a fonte de exibição da barra de endereço: www.example.com? Isso permite que você atualize sem que seja redirecionado?
Matthew Blackford

1
@MatthewBlackford AFAICT a mesma coisa, na verdade eu recebo a fonte da página redirecionada. Não tenho certeza se meu teste foi ótimo, apesar de TBH. Excluí o histórico de navegação para 'corrigir' esse problema.
Ian Grainger

2
Isso funciona apenas para redirecionamentos javascript e metatag. Redirecionamentos HTTP ainda são seguidas
fregante

6

Conforme descrito aqui, pode ser causado pelo HSTS

Para contornar isso, fiz o seguinte.

Na barra de endereço do Chrome, digite "chrome: // net-internals / # hsts". Na parte inferior da página, está QUERY domínio caixa de texto - verifique se o site (localhost, por exemplo) é conhecido pelo navegador. domínio usando a caixa de texto acima Seu site agora deve funcionar usando HTTP simples e antigo


1
Ei, obrigado. Isso realmente ajuda com o repentino https redireciona o cache.
Ruberoid 03/03

5

No Chrome ou Firefox, você pode atualizar o redirecionamento digitando "view-source: redirect.yoursite.com" e pressionando Enter. Em seguida, atualize essa página. Agora, isso deve forçar o Chrome ou o Firefox a atualizar o redirecionamento.


Esta é a única resposta que funcionou para mim.
precisa saber é o seguinte

4

Se você quiser apenas verificar se os redirecionamentos estão funcionando conforme o 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.


3

Para fins de desenvolvimento, recomendo que você abra as configurações do DevTools no Chrome e marque "Desativar cache". Os redirecionamentos 30x não são armazenados em cache e você pode depurar arquivos .htaccess e assim por diante! insira a descrição da imagem aqui


O estranho é que essa opção não ajuda. Desativei o cache, mas ele ainda diz na guia rede 301 Moved Permanently (from disk cache).
mgutt

É exatamente o mesmo que clicar em 'desativar cache' enquanto a guia de rede está aberta. Não - não limpa os redirecionamentos.
bshea

1
  1. Vamos para chrome://settings/search#clear%20browsing%20data

  2. Clique em "Limpar dados de navegação"

  3. Marque "Imagens e arquivos em cache" (e desmarque o restante, se desejar)

  4. Clique em "Limpar dados de navegação"

insira a descrição da imagem aqui


1

método mais simples, atualização completa. segure Ctrl+ Ralguns segundos. Isso limpa os redirecionamentos e os recursos estáticos.


Por que você seguraria em vez de simplesmente pressionar Ctrl+R?
Gronostaj # 1/15

@gronostaj Não foi a minha resposta clara e simples? . Sem segurar, seria apenas uma atualização normal. O que não limpa recursos em cache ou redireciona.
Ryu_hayabusa

Segurar é como pressionar várias vezes. Abra o Bloco de notas e mantenha pressionado R, vários Rs aparecerão. É exatamente o mesmo, mas com Ctrl. Manter Ctrl+ Ré o equivalente exato de pressioná-lo dezenas de vezes por segundo por alguns segundos. Isso não é inteligente, está abusando do mecanismo de atualização interno e confiando em comportamento não documentado.
gronostaj

@gronostaj Sim, é um comportamento não documentado. A resposta aceita não funciona para mim. É por isso que eu compartilhei aqui. Não vejo outra maneira de limpar o redirecionamento em cache. Se você conhece outros métodos, sinta-se à vontade para compartilhar.
Ryu_hayabusa 10/10

Tentei e não funcionou (redirecionamento 301 em todo o domínio).
mgutt

1

Se você não deseja perder todo o cache e seu redirecionamento ainda está preso no cache, tente visitar a fonte de exibição: versão do URL. Isso atualizou o cache de redirecionamento do mesmo URL para mim.


0

Eu tentei todas as respostas nesta página, mas nenhuma funcionou até executar o flushdns na janela da linha de comando do Windows.

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

Para sua informação, eu já havia Disable cacheverificado como mencionado nesta resposta.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.