Como evitar pedidos de favicon.ico?

Eu não tenho um favicon.ico, mas o IE sempre faz um pedido para isso.

É possível impedir que o navegador faça uma solicitação para o favicon do meu site? Talvez algum META-TAG no header HTML?

   

Primeiro, direi que ter um favicon em uma página da Web é uma coisa boa (normalmente).

No entanto, nem sempre é desejado e, em algum momento, os desenvolvedores precisam de uma maneira de evitar a carga extra. Por exemplo, um IFRAME solicitaria um favicon sem mostrá-lo. Pior ainda, no Chrome e no Android um IFRAME gerará 3 pedidos de favicons:

"GET /favicon.ico HTTP/1.1" 404 183 "GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 197 "GET /apple-touch-icon.png HTTP/1.1" 404 189 

O seguinte usa URI de dados e pode ser usado para evitar solicitações falsas de favicon:

  

Para referências, veja aqui:

O problema / comportamento do Chrome provavelmente será corrigido nas próximas versões.

Aqui está o envio do bug para você votar:

ATUALIZAÇÃO 1:

Dos comentários (jpic), parece que o Firefox> = 25 não gosta mais da syntax acima. Eu testei no Firefox 27 e ele não funciona enquanto ele ainda funciona no Webkit / Chrome.

Então, aqui está o novo que deve abranger todos os navegadores recentes. Eu testei o Safari, Chrome e Firefox:

  

Deixei de fora o nome do “atalho” do valor do atributo “rel”, pois isso é apenas para o IE mais antigo e as versões do IE <8 também não são do tipo dataURIs. Não testado no IE8.

ATUALIZAÇÃO 2:

Se você precisar que seu documento seja validado em relação ao HTML5, use:

  

Eu acredito que já vi isso (Eu não testei ou usei pessoalmente) :

  

Alguém teve experiência semelhante?

EDITAR:

Acabei de testar o snippet acima e, em uma atualização completa forçada, nenhuma solicitação de favicon foi vista no Fiddler. Eu testei contra o IE8 (modo Compat como padrões IE7) e FF 3.6.

Você não pode. Tudo o que você pode fazer é tornar a imagem o menor possível e definir alguns headers de invalidação de cache ( Expires , Cache-Control ) no futuro. Veja o que o Yahoo! tem a dizer sobre solicitações favicon.ico.

A seguinte solução é muito curta, HTML5 válido e não incorre em qualquer peculiaridade do IE 8 ou anterior.

Basta adicionar a seguinte linha à seção do seu arquivo HTML:

  

Você pode usar .htaccess ou diretivas de servidor para negar access a favicon.ico, mas o servidor enviará uma resposta de access negado ao navegador e isso ainda diminui o access à página.

Você pode parar o navegador solicitando favicon.ico quando um usuário retornar ao seu site, fazendo com que ele permaneça no cache do navegador.

Primeiro, forneça uma pequena imagem de favicon.ico, pode estar em branco, mas o menor possível. Eu fiz um preto e branco com menos de 200 bytes. Então, usando .htaccess ou diretivas de servidor, defina o arquivo. Expira o header um mês ou dois no futuro. Quando o mesmo usuário voltar ao seu site, ele será carregado a partir do cache do navegador e nenhuma solicitação será direcionada ao seu site. Não há mais 404’s nos logs do servidor também.

Se você tem controle sobre um servidor Apache completo ou talvez um servidor virtual, você pode fazer isso:

Se a raiz do documento do servidor for digamos / var / www / html, adicione isso ao /etc/httpd/conf/httpd.conf:-

 Alias /favicon.ico "/var/www/html/favicon.ico"   ExpiresActive On ExpiresDefault "access plus 1 month"   

Em seguida, um único favicon.ico funcionará para todos os sites hospedados virtuais, desde que você esteja aliaseando-o. Será extraído do cache do navegador por um mês após a visita dos usuários.

Para .htaccess isso é relatado para o trabalho (não verificado por mim): –

 AddType image/x-icon .ico ExpiresActive On ExpiresByType image/x-icon "access plus 1 month" 

Uma solução muito simples é colocar o código abaixo em seu .htaccess . Eu tive o mesmo problema e resolvi meu problema.

  RedirectMatch 403 favicon.ico  

Referência: http://perishablepress.com/block-favicon-url-404-requests/

se você usar nginx

 # skip favicon.ico # location = /favicon.ico { access_log off; return 204; } 

Em nossa experiência, com o Apache caindo a pedido do favicon.ico, nós comentamos headers extras no arquivo .htaccess.

Por exemplo, tivemos Header set X-XSS-Protection “1; mode = block”

… mas nos esquecemos de sudo headers a2enmod de antemão. Comentando os headers extras que estão sendo enviados, resolvemos nosso problema com favicon.ico.

Também tivemos vários hosts virtuais configurados para desenvolvimento e só falhamos com 500 Internal Server Error ao usar http: // localhost e buscar /favicon.ico. Se você executar “curl -v http: //localhost/favicon.ico ” e receber um aviso sobre o fato de o nome do host não estar no cache do resolvedor ou algo nesse sentido, você poderá ter problemas.

Pode ser tão simples quanto não buscar (nós tentamos isso e não funcionou, porque nossa causa raiz era diferente) ou procuramos diretivas em apache2.conf ou .htaccess que podem estar causando estranhas 500 mensagens de Erro Interno do Servidor.

Descobrimos que ele falhou tão rápido que não havia nada de útil nos logs de erro do Apache e passou uma manhã inteira alterando pequenas coisas aqui e ali até resolvermos o problema de configurar headers extras quando esquecemos de ter mod_headers carregados!

Sugiro colocar o site em uma pasta .zip / compactada. É assim que um exemplo de página da Web se parecia em uma pasta .zip / compactada: WEBSITE EM .ZIP / PASTA COMPRIMIDO

É assim que ficaria em uma pasta normal: WEBSITE NA PASTA NORMAL

Você poderia usar

  

Dessa forma, não será realmente solicitado ao servidor.