Eu não tenho um favicon.ico, mas o IE sempre faz um pedido.
É possível impedir que o navegador solicite o favicon do meu site? Talvez algum META-TAG no cabeçalho HTML?
Eu não tenho um favicon.ico, mas o IE sempre faz um pedido.
É possível impedir que o navegador solicite o favicon do meu site? Talvez algum META-TAG no cabeçalho HTML?
Respostas:
Primeiro vou dizer que ter um favicon em uma página da Web é uma coisa boa (normalmente).
No entanto, nem sempre é desejado e, às vezes, os desenvolvedores precisam de uma maneira de evitar a carga útil extra. Por exemplo, um IFRAME solicitaria um favicon sem mostrá-lo. Pior ainda, no Chrome e no Android, um IFRAME gerará três solicitações de favoritos:
"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
A seguir, é utilizado o URI de dados e pode ser usado para evitar solicitações de favicon falsas:
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
Para referências, veja aqui:
O bug / comportamento do Chrome provavelmente será corrigido nas próximas versões.
Aqui está o envio de bug para você votar:
ATUALIZAÇÃO 1:
A partir dos comentários (jpic), parece que o Firefox> = 25 não gosta mais da sintaxe acima. Eu testei no Firefox 27 e ele não funciona enquanto ainda funciona no Webkit / Chrome.
Então, aqui está o novo que deve cobrir todos os navegadores recentes. Eu testei o Safari, Chrome e Firefox:
<link rel="icon" href="data:;base64,=">
Eu 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 gostam de dataURIs. Não testado no IE8.
ATUALIZAÇÃO 2:
Se você precisar validar seu documento no HTML5, use-o:
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=">
parece resolver o problema.
data:image/png;base64,iVBORw0KGgo=
no navegador, salvá-lo como favicon.ico
aka. arquivo vazio em PNG e armazene-o na raiz do site. Direita?
Basta adicionar a seguinte linha à <head>
seção do seu arquivo HTML:
<link rel="icon" href="data:,">
Recursos desta solução:
href="#"
)reserves space
?
Eu acredito que já vi isso (Ainda não testei ou usei pessoalmente):
<link rel="shortcut icon" href="#" />
Alguém teve experiência semelhante?
EDITAR:
Acabei de testar o trecho 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 o FF 3.6.
href
link para algum recurso estático (armazenado em cache) que você já carregou (por exemplo, arquivo CSS ou script) - para garantir que uma página dinâmica (não armazenada em cache) não seja solicitada duas vezes. (Apenas por segurança, pois href="#"
aponta tecnicamente para a página da web atual).
Você não pode. Tudo o que você pode fazer é tornar a imagem o menor possível e definir alguns cabeçalhos de invalidação de cache ( Expires
, Cache-Control
) no futuro. Aqui está o que o Yahoo! tem a dizer sobre pedidos favicon.ico.
Você pode usar as diretivas .htaccess ou server para negar acesso ao favicon.ico, mas o servidor enviará uma resposta de acesso negado ao navegador e isso ainda diminui o acesso à página.
Você pode interromper o navegador que solicita o 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 favicon.ico, que pode ficar em branco, mas o menor possível. Eu fiz um preto e branco com menos de 200 bytes. Em seguida, usando diretivas .htaccess ou de servidor, defina o cabeçalho Expirar arquivo um ou dois meses no futuro. Quando o mesmo usuário voltar ao seu site, ele será carregado no cache do navegador e nenhuma solicitação será direcionada ao seu site. Não há mais 404 nos logs do servidor também.
Se você tiver controle sobre um servidor Apache completo ou talvez um servidor virtual, poderá fazer o seguinte: -
Se a raiz do documento do servidor for / var / www / html, adicione-a ao /etc/httpd/conf/httpd.conf:-
Alias /favicon.ico "/var/www/html/favicon.ico"
<Directory "/var/www/html">
<Files favicon.ico>
ExpiresActive On
ExpiresDefault "access plus 1 month"
</Files>
</Directory>
Então, um único favicon.ico funcionará para todos os sites virtuais hospedados, já que você está usando o alias. Ele será retirado do cache do navegador por um mês após a visita dos usuários.
Para .htaccess, isso é relatado como funcionando (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 no seu .htaccess
. Eu tive o mesmo problema e resolve o meu problema.
<IfModule mod_alias.c>
RedirectMatch 403 favicon.ico
</IfModule>
Referência: http://perishablepress.com/block-favicon-url-404-requests/
Em nossa experiência, com o Apache caindo a pedido do favicon.ico, comentamos cabeçalhos extras no arquivo .htaccess.
Por exemplo, o cabeçalho definiu a proteção X-XSS "1; mode = block"
... mas esquecemos de sudo os cabeçalhos do a2enmod de antemão. Comentar o envio de cabeçalhos extras resolveu o problema do favicon.ico.
Também tínhamos vários hosts virtuais configurados para desenvolvimento, e só falhamos com o 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 nome do host não estar no cache do resolvedor ou algo nesse sentido, poderá ocorrer problemas.
Pode ser tão simples quanto não buscar (tentamos isso e não funcionou, porque nossa causa raiz era diferente) ou procurar diretivas no apache2.conf ou no .htaccess que podem estar causando estranhas mensagens de erro do 500 Internal Server.
Nós descobrimos que falhou tão rapidamente que não havia nada útil nos logs de erros do Apache e passamos a manhã inteira mudando pequenas coisas aqui e ali até resolvermos o problema de definir cabeçalhos extras quando esquecemos de carregar o mod_headers!
Às vezes, esse erro ocorre quando o HTML tem algum código comentado e o navegador está tentando procurar algo. Como no meu caso, eu tinha comentado o código de um formulário da Web no balão e estava obtendo isso.
Depois de duas horas, eu o consertei das seguintes maneiras:
1) Criei um novo ambiente python e, em seguida, ele gerou um erro na linha HTML comentada; antes disso, era gerado apenas o erro 'GET /favicon.ico HTTP / 1.1 "404"
2) Às vezes, quando eu tinha um código duplicado, como um arquivo python existente com o mesmo nome, também vi esse erro, tente removê-los também
Você poderia usar
<link rel="shortcut icon" href="http://localhost/" />
Dessa forma, ele não será realmente solicitado pelo servidor.