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.

Foi útil?

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

  1. Digite www.yoursite.com/favicon.ico (ou www.yoursite.com/apple-touch-iCon.png, etc.)
  2. Empurre digitar
  3. Ctrl+F5
  4. 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:

  1. Passe o mouse sobre a guia
  2. Clique com o botão direito do mouse
  3. Selecione recarregar
  4. 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.

  1. 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 ou firefox.exe).
  2. Navegue até onde o seu navegador armazena arquivos de usuário:
  3. Exclua o cache do Favicon.
    • Para o Chrome, remova Favicons e Favicons-journal
    • Para o Firefox, remova favicons.sqlite

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:

  1. Visite seu arquivo em http://example.com/favicon.ico em seu navegador.
  2. Exclua o favicon.ico do seu webroot.
  3. Visita http://example.com/favicon.ico Novamente em um navegador, verifique se está faltando.
  4. Carregue o novo para o seu webroot.
  5. 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:

  1. Open Internet Explorer.
  2. Clique em Menu> Ferramentas> Opções da Internet.
  3. Clique em Geral> Botão temporário da Internet> "Configurações".
  4. Clique no botão "Exibir arquivos".
  5. Encontre seu arquivo antigo favicon.ico e exclua -o.
  6. 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):

  1. Cache de descarga
  2. Ligando o favicon com o <link> marcação
  3. Navegando para mysite.com/favicon.ico
  4. 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:

  1. Saia do Chrome
  2. Carregue o banco de dados Favicons (usando SQLite aqui):

sqlite3 ~/Library/Application\ Support/Google/Chrome/Default/Favicons

  1. Procure o arquivo que está causando problemas

select * from favicons where url = 'http://mysite.dev/favicon.ico';

  1. 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:


  1. Procurar por vários arquivos que estão causando problemas

select * from favicons where url like 'http://mysite.dev%';

  1. E novamente se você estiver feliz com o que isso retorna:

delete from favicons where url like 'http://mysite.dev%';


  1. Modelo .exit e acerte o retorno para sair do SQLITE
  2. 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

fonte

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.

  1. Peça a todos os seus clientes desinstalar o Firefox. Então reinstale.

  2. 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:

  1. Abri pelo programa FTP, baixei meus arquivos favicon.ico e favicon.gif,
  2. Em seguida, os excluímos dos arquivos do meu servidor.
  3. 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")
  4. 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:

  1. Adicione seu arquivo .ico no projeto.
  2. 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.
  3. 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.

  1. Reinicie o servidor.
  2. 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:

http://jira.grails.org/browse/gpresources-134

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top