Como forço uma atualização do Favicon?
-
18-09-2019 - |
Pergunta
Eu tenho um aplicativo de Grails executando localmente usando seu próprio tomcat e acabei de mudar o Favicon para um novo. O problema é que não posso vê -lo em nenhum navegador. O antigo Favicon aparece ou eu não tenho nenhum favicon, mas não o meu novo. Eu não acho que este seja um problema de graals em si, mais um problema com os Favicons.
O que deveria acontecer com os favicons? Como eles devem funcionar? Eu tenho inúmeros favoritos no meu navegador, que têm ícones errados e eles nunca parecem ser atualizados. Como forço o servidor/navegador a parar de armazená -los em cache? Parece bastante bobo sempre cache -os, já que normalmente são apenas 16x16. Por que não apenas carregá -los a cada visita à página? Não é exatamente uma grande sobrecarga.
Solução
Para atualizar o Favicon do seu site, você pode forçar os navegadores a baixar uma nova versão usando a tag de link e um consulte no seu nome de arquivo. Isso é especialmente útil em ambientes de produção para garantir que seus usuários obtenham a atualização.
<link rel="icon" href="http://www.yoursite.com/favicon.ico?v=2" />
Outras dicas
Ok, após 10 minutos de wtf'ing, a maneira mais fácil de corrigi -lo é próxima da de Lineofbirds
- Digite www.yoursite.com/favicon.ico (ou www.yoursite.com/apple-touch-iCon.png, etc.)
- Empurre digitar
- Ctrl+F5
- Reinicie o navegador (ou seja, Firefox)
Essa resposta ainda não foi dada, então pensei em postar. Eu olhei em toda a web e não encontrei uma boa resposta para testar os favicons no desenvolvimento local.
Na versão atual do Chrome (no OSX), se você fizer o seguinte, receberá uma atualização instantânea do Favicon:
- Passe o mouse sobre a guia
- Clique com o botão direito do mouse
- Selecione recarregar
- Seu favicon agora deve ser revigorado
Esta é a maneira mais fácil que encontrei para atualizar o Favicon localmente.
Renomeie o arquivo Favicon e adicione um cabeçalho HTML com o novo nome, como:
<link rel="SHORTCUT ICON" href="http://www.yoursite.com/favicon2.ico" />
Se você usar o PHP, também poderá usar o MD5-Hash do Favicon como um cordão de consulta:
<link rel="shortcut icon" href="favicon.ico?v=<?php echo md5_file('favicon.ico') ?>" />
Dessa forma, o Favicon sempre se refresca quando for alterado.
Conforme apontado nos comentários, você também pode usar a última data modificada em vez do MD5-Hash para alcançar a mesma coisa e economizar um pouco no desempenho do servidor:
<link rel="shortcut icon" href="favicon.ico?v=<?php echo filemtime('favicon.ico') ?>" />
Ao destruir o arquivo que seu navegador usa para armazenar favicons antigos, você pode forçar novos a ser carregado.
- Feche seu navegador. Verifique se não há mais processos de navegador em execução (por exemplo, verifique o gerenciador de tarefas para
chrome.exe
oufirefox.exe
). - Navegue até onde o seu navegador armazena arquivos de usuário:
- Para o Chrome, vá para o Diretório de dados do Chrome.
- Para o Firefox, vá para o Pasta de perfil do Firefox.
- Exclua o cache do Favicon.
- Para o Chrome, remova
Favicons
eFavicons-journal
- Para o Firefox, remova
favicons.sqlite
- Para o Chrome, remova
Isso quase definitivamente funcionará. Se não:
- Possibilidade 1: Uma atualização para o seu navegador mudou como funciona o cache do Favicon. Por favor, edite esta resposta com novas instruções.
- Possibilidade 2: Seu problema favorito não tem nada a ver com o armazenamento agressivo. Em vez disso, pode ser um problema de carregamento de recursos-usando ferramentas de desenvolvedor, verifique se o novo Favicon está baixando corretamente.
No Chrome, no Mac OS X, um pode remover o arquivo com cache favicon
${user.home}/Library/Application Support/Google/Chrome/Default/Favicons
Bem, a sobrecarga está no alto, mas sim, não é muito grande.
Além disso, os navegadores às vezes são "gananciosos" sobre arquivos em cache. Você pode limpar o cache e/ou reiniciar o navegador e ver a mudança. Se isso falhar embora ...
Minha solução barata é: para:
- Visite seu arquivo em http://example.com/favicon.ico em seu navegador.
- Exclua o favicon.ico do seu webroot.
- Visita http://example.com/favicon.ico Novamente em um navegador, verifique se está faltando.
- Carregue o novo para o seu webroot.
- Visita http://example.com/favicon.ico Novamente em um navegador, verifique se é o novo.
Se essa sequência não funcionar, então outra coisa está acontecendo.
Dependendo do navegador, eles são tratados de maneira diferente, mas normalmente acho que ir para a página padrão do site e fazer uma atualização difícil. Ctrl + F5, normalmente o faz atualizar.
No Mac:⌘ + Mudança-R ou segure Ctrl e clique no botão Recarregar no navegador.
Para o Internet Explorer, há outra solução:
- Open Internet Explorer.
- Clique em Menu> Ferramentas> Opções da Internet.
- Clique em Geral> Botão temporário da Internet> "Configurações".
- Clique no botão "Exibir arquivos".
- Encontre seu arquivo antigo favicon.ico e exclua -o.
- Reinicie o navegador (Internet Explorer).
Mais do que provável um problema do navegador da web. Você terá que excluir seu cache do seu navegador, fechar o navegador e reabrir. Isso deve consertar isso.
Não acredito que seus favicons sejam atualizados em seus favoritos até que você revise essa página e assumindo que você havia limpado o cache dos navegadores.
Seu navegador da Web não sairá à Internet para verificar um novo favicon por conta própria ... graças a Deus.
Tente abrir em uma nova guia
Eu tentei muitas das coisas acima (redefinindo cache, refrescante, usando a tag de link etc.), eu até verifiquei meu .htaccess
Arquivo e redefinir a variável ExpiresByType.
Mas foi isso que finalmente funcionou para mim no Chrome (25.0.x) e no Safari (6.0.1):
- Cache de descarga
- Ligando o favicon com o
<link>
marcação - Navegando para
mysite.com/favicon.ico
- Abertura
mysite.com
em uma nova guia
(Até a etapa 3, refrescante na mesma guia continuava reproduzindo o ícone antigo.)
Para o Chrome On MacOS, se você não deseja excluir todo o banco de dados do Chrome Favicon, conforme sugerido aqui, você pode excluir apenas os ícones conflitantes:
- Saia do Chrome
- Carregue o banco de dados Favicons (usando SQLite aqui):
sqlite3 ~/Library/Application\ Support/Google/Chrome/Default/Favicons
- Procure o arquivo que está causando problemas
select * from favicons where url = 'http://mysite.dev/favicon.ico';
- Se você está feliz com a saída:
delete from favicons where url = 'http://mysite.dev/favicon.ico';
alternativamente, você pode procurar um padrão que possa reutilizar para excluir várias entradas:
- Procurar por vários arquivos que estão causando problemas
select * from favicons where url like 'http://mysite.dev%';
- E novamente se você estiver feliz com o que isso retorna:
delete from favicons where url like 'http://mysite.dev%';
- Modelo
.exit
e acerte o retorno para sair do SQLITE - Reinicie o Chrome
Quando você solicita o Favicon do Google, você pode dar uma olhada nos cabeçalhos de resposta.
Last-Modified: Fri, 09 Jan 2009 16:35:02 GMT
Date: Thu, 01 Dec 2010 00:00:01 GMT
Expires: Fri, 01 Dec 2011 00:00:01 GMT
Cache-Control: public, max-age=31536000
Age: 7
Se você colocar um cabeçalho "expirar:" na resposta, os navegadores do cliente serão solicitados novamente o ícone após esse registro de data e hora. Ao fazer o desenvolvimento ativo, você pode definir o timestamp expire para um segundo ou dois no futuro, e sempre buscá -lo, embora esse seja um plano de longo prazo.
O suporte favicon do Chrome é buggy - desconsidere esta resposta
Escrevi essa resposta com a impressão de que é isso que foi necessário para atualizar os Favicons no Google Chrome. No entanto, acontece que isso só funciona nos primeiros cinco minutos, até que o ícone fique Irretavelmente perdido na sincronização da história do Chrome.
Resposta original
Você não precisa limpar seu cache, reiniciar seu navegador, ou Reescreva seu html - você só precisa alterar o URL do ícone, uma vez, para que o navegador esqueça o ícone previamente agressivo.
Assumindo que você definiu seu ícone via <link>
elementos da sua página <head>
, você pode fazer isso executando isso Standard-Js One-liner No console:
[].slice.call(document.querySelectorAll('head>link[rel$="icon"]')).map(function(ln){ln.href+='?v=2'});
Para uma implementação mais avançada disso que pode fazer isso automaticamente para os usuários finais em produção, consulte freshicon.js.
Recentemente, restaurei meus favoritos e estava procurando uma maneira de restaurar os Favicons sem visitar cada página. Minha pesquisa me levou a este tópico.
Para aqueles em uma circunstância semelhante, apenas baixe o addon Reloader Favicon. Depois de instalado, você encontrará o comando "Recarregar os ícones favoritos" em seu menu suspenso de favoritos.
https://addons.mozilla.org/en-us/firefox/addon/faviconreloader/?src=api
Se você estiver usando o PHP .. então também pode usar esta linha.
<link rel="shortcut icon" href="http://www.yoursite.com/favicon.ico?v=<?php echo time() ?>" />
Ele atualizará seu favicon em cada página de carga.
Versão Chrome: 68.0.3440.106
Basta reiniciar o Chrome (na sua barra de endereços):chrome://restart
Se você estiver interessado em depurar para garantir que ele tenha mudado, basta adicionar uma entrada dummy ao seu arquivo /etc /hosts e pressionar o novo URL. Esse favicon ainda não seria armazenado em cache e você pode garantir que um novo esteja funcionando.
Além de mudar o nome do favicon, não há como forçar seus usuários a obter uma nova cópia
Isso funciona para o Chrome:
No Mac: Excluir arquivo
$ {user.home}/biblioteca/suporte do aplicativo/google/chrome/default/favicons
No Windows: Excluir arquivos
C: Usuários [Nome de usuário] AppData Local Google Chrome Dados do Usuário Destaque Favicons C: Usuários [Nome de usuário] AppData Local Google Chrome Dados do usuário Default Favicons-Journal
Esta é uma solução alternativa para o bug do Chrome: altere o atributo REL para a folha de estilo! Mantenha o link original. Funciona como um encanto:
Cheguei a essa solução alternativa porque também temos um requisito para poder atualizar os sites / código de produção do cliente e não encontrei nenhuma das outras soluções para trabalhar.
Sei que essa é uma pergunta muito antiga, mas também é uma que ainda é relevante, embora hoje em dia se aplique apenas a Mozilla. (Não tenho idéia do que o Explorer faz porque não codificamos para navegadores não padrão).
O Chrome é bem comportado se um incluir uma etiqueta de ícone no cabeçalho.
Embora a Mozilla esteja bem ciente da questão, como de costume, eles nunca corrigem as pequenas coisas irritantes. Mesmo 6 anos depois.
Portanto, existem duas maneiras de forçar uma atualização do ícone com o Firefox.
Peça a todos os seus clientes desinstalar o Firefox. Então reinstale.
Digite manualmente apenas o domínio na barra de URL - não use http ou www apenas o domínio (mydomain.com).
Isso pressupõe, é claro, que seus registros NS incluem resolução apenas para o nome de domínio.
Veja como eu consegui com um Favicon simplesmente animado e o Firefox 3.6.13 (versão beta), provavelmente funcionará para outras versões do Firefox, informe -me se não funcionar. É basicamente a solução de Artlung, mas também abordando o arquivo .gif:
- Abri pelo programa FTP, baixei meus arquivos favicon.ico e favicon.gif,
- Em seguida, os excluímos dos arquivos do meu servidor.
- Então eu os abri no meu navegador, como Artlung sugeriu:http://mysite.com/favicon.ico E http://mysite.com/favicon.gif Depois que esses endereços carregados e exibidos 404 páginas de erro ("página não encontrada")
- Em seguida, enviei os dois arquivos de volta ao meu servidor e Presto - os ícones corretos foram exibidos instantaneamente.
Também certifique -se de colocar o URL de imagem completa não apenas seu caminho relativo:
http://www.example.com/images/favicon.ico
E não:
images/favicon.ico
Se o problema continuar apesar de aplicar algumas etapas acima tente reiniciar o servidor IIS. Espero que isto ajude...
Simples,
1: Eu não quero mexer com códigos (PS meu construtor de sites não usa códigos, ele usa o botão "upload file" e faz isso por conta própria)
2: Eu tentei o Ctrl+F5 E não funciona para mim então ....
Eu tenho uma solução:
Ou seja: limpe todos os biscoitos e biscoitos do navegador indo para as configurações cog o
Chrome: vá para o menu no canto superior direito abaixo do X que se parece com A =, em seguida, vá para configurações, histórico, dados claros de navegação e verifique todas as caixas que se aplicam (eu fiz histórico, cookies e esvaziar o captura do começo do tempo)
Basta mudar este nome de arquivo = 'favicon1.ico'
Siga as etapas abaixo para alterar o ícone do aplicativo:
- Adicione seu arquivo .ico no projeto.
- Vá para Angular.json e nesses "projetos" -> "arquiteto" -> "build" -> "opções" -> "ativos" e aqui faça uma entrada para o seu arquivo de ícone. Consulte a entrada existente do favicon.ico para saber como fazê -lo.
- Vá para Index.html e atualize o caminho do arquivo de ícone. Por exemplo,
<link rel="icon" type="image/x-icon" href="abc.ico">
Como alternativa, renomeie seu arquivo de ícone com favicon.ico e substitua -o no diretório.
- Reinicie o servidor.
- Navegador de atualização difícil e você está pronto para ir.
Simon, suponho que haja uma razão pela qual nenhuma das outras respostas é aceita até agora. Assim, eu acredito nisso poderia Seja um problema de Grails - especialmente se você estiver usando o 'Plugin de Recursos'.
Se seus plug -ins fornecerem um favicon (que - ilogicamente - muitos o fazem), eles podem substituir o que você deseja usar - dado que o seu está em um plugin.
Se a exclusão do favicon de todos os seus plugins temporariamente resolver o problema, provavelmente você está experimentando isso: