Como eu realmente libero o cache do Safari?

12

Houve incontáveis ​​vezes em que me deparei com um problema depois de editar HTML em um Mac. O problema deriva de eu fazer o upload do arquivo atualizado para o meu servidor através do FTP, e navegarei até o site no Safari. A única coisa que não agiu corretamente foi que o Safari já havia armazenado em cache a página da web (a versão antiga), então mostrava a versão antiga. Eu pensei comigo mesmo e decidi limpar o cache no Safari, esperando que isso resolvesse meu problema. Limpar o cache simplesmente deixa o site aparecer para recarregar. Ainda surgiu a versão antiga do arquivo. Para provar que o arquivo no servidor foi realmente atualizado, eu entrei em outro Mac na mesma rede, e ele exibiu a nova versão do arquivo. Não importa quantas vezes eu atualizei ou limpei o cache ou reabri o Safari, ele sempre entregaria o arquivo antigo. A única outra solução que consegui foi reiniciar. Após uma reinicialização, o Safari recarregou todo o site e exibiu a nova versão do arquivo.

Eu estou realmente querendo saber como limpar o cache do Safari e fazer com que ele se comporte corretamente. Isso é algo que o sistema operacional faz (eu tive problemas semelhantes com arquivos no meu disco rígido, também)? Eu não quero ter que reiniciar o tempo todo apenas para ver uma nova versão de um arquivo, então existe alguma maneira que eu possa garantir que estou vendo o mais novo? Existe uma pasta de armazenamento temporário que eu possa limpar manualmente? Isso acontece comigo com bastante frequência (não muito frequente, mas o suficiente para eu notar), e minha única solução atual é reiniciar.

Eu tenho um sentimento estranho (não é realmente um pensamento, mas uma possibilidade tão pequena que não faz muito sentido) que a sua origem de um nível inferior.

Andrew Larsson
fonte
Use cromo (ou ópera)?
Fake Name
Eu prefiro usar o Firefox, mas estou desenvolvendo, então preciso testar meu site em todos os navegadores, incluindo o Safari.
Andrew Larsson
Pode ser útil usar o curl comando da linha de comando para solicitar uma URL, para ver o que isto surge com. A página antiga ou a nova? Desde a curl não tem nenhum conceito de "cache" de nada, isso lhe dirá se alguém no lado remoto (ou o caminho entre) está fazendo cache que você não quer. Seu servidor só pode ser o verdadeiro culpado aqui! É o cache dos arquivos que ele serve? Aposto que é. . .
Mike Robinson

Respostas:

12

No Safari, segure o botão ( Mudança ) enquanto clica no botão de atualização. Isso executará uma atualização "hard", que ignora o cache local.

(Para limpar rapidamente o cache no Safari, pressione + + E , vamos para Privacidade e clique "Remover todos os dados do site" .)

Mathias Bynens
fonte
Eu vou definitivamente tentar que da próxima vez eu me deparo com esta questão. Isso é uma coisa que ainda não fiz. Eu tentei redefinir o Safari, limpar o cache e até mesmo fazer logout e login novamente. Obrigado pela ótima resposta!
Andrew Larsson
2
O Safari é um pouco confuso neste aspecto, como a maioria dos outros navegadores usam + + R para executar uma atualização difícil. No Safari, isso não faz nada, a menos que você se concentre nas Ferramentas do desenvolvedor da Web enquanto executa o combo do teclado.
Mathias Bynens
Eu vou aceitar sua resposta por enquanto até que alguém venha com uma explicação melhor, com uma solução comprovada para o cache ignorante que estou experimentando. Obrigado!
Andrew Larsson
1
@AndrewLarsson De qualquer forma, depois de uma atualização difícil, você deve sempre obter a versão mais recente, supondo que não haja nenhum cache estranho do lado do servidor acontecendo. O que me lembra, quais cabeçalhos de cache o servidor envia junto com o arquivo? Pode ser um problema de configuração do servidor.
Mathias Bynens
Essa foi outra coisa que eu estava pensando. Se o servidor está retornando um 304 quando, na verdade, ele deve estar retornando novo conteúdo, seria algo que eu preciso mudar na minha configuração. Vou investigar isso na próxima vez que me deparar com esse problema.
Andrew Larsson
2

Quando o Safari não limpa o cache:

  1. Certifique-se de ter feito logout de todas as páginas da Web e de ter fechado todas as guias do Safari.

  2. Abra o Finder e selecione Ir → Ir para pasta ... na barra de menus. (Como alternativa, você pode usar o atalho do teclado, Comando + Mudança + g .)

  3. Copie e cole o seguinte no menu suspenso:

    ~/Library/Safari/Databases

  4. Exclua todo o conteúdo que aparece nessa pasta, destacando todas as pastas e clicando com o botão direito do mouse e selecionando Mover para Lixeira.

  5. Abra o Safari novamente e verifique se todos os itens foram excluídos.

  6. Se nada aparecer quando você procurar os critérios acima, por favor, procure

    ~/Library/Safari/Local Storage

    e siga os passos 4 e amp; 5 acima para excluir todo o conteúdo.

Suzanna
fonte
Observe que, embora o Safari diga, acima, que "removerá todos os dados do site", a verdade é que realmente não faz . Mas se você limpar o conteúdo das várias pastas mencionadas aqui, isso será.
Mike Robinson
1

Eu tive exatamente o mesmo problema, exceto que notei que isso estava acontecendo com outros navegadores também. Acontece que não era o Safari ou o OSX, era um cache criado pelo provedor de serviços.

Para resolver o problema, coloquei o código na minha página para evitar que ele fosse armazenado em cache.

content = "no-cache"

"Algumas pessoas sabem sobre o cache do navegador, mas ainda são surpreendidas pelo cache do ISP. O armazenamento em cache do ISP funciona da mesma maneira que o cache do navegador. Depois de visitar um site, o ISP pode armazenar essas páginas em cache para que da próxima vez que você visitá-los.O principal problema com isso é que, ao contrário do cache do seu navegador, você não pode excluir esses arquivos temporários, em vez disso, você deve aguardar até que o cache do ISP expire e solicitar novas cópias dos arquivos. você está tentando desenvolver ou fazer alterações em seu site - ou até mesmo procurar novas informações. "

James
fonte
Você pode por favor colocar de volta no código completo (como você tinha na primeira versão da resposta)? Se você colocar quatro espaços no início da linha, não haverá problemas com a formatação.
nohillside
Este é um bom ponto, e vou tentar da próxima vez. No entanto, não tenho certeza de como isso se aplicaria à situação que descrevi na pergunta, porque os Macs que usei estavam na mesma rede e tinham o mesmo IP global (para que o ISP não conseguisse determinar diferença entre eles).
Andrew Larsson