800 votes

Comment prévenir favicon.ico demandes?

Je n'ai pas de favicon.ico, mais c'est à dire toujours en fait la demande.

Est-il possible d'empêcher le navigateur de faire une demande pour le favicon de mon site? Peut-être que certaines MÉTA-BALISE dans le code HTML?

748voto

Diego Perini Points 951

Je vais d'abord dire que le fait d'avoir un favicon dans une page Web est une bonne chose (normalement).

Cependant, il n'est pas toujours souhaitée et, parfois, les développeurs ont besoin d'un moyen pour éviter le supplément de charge utile. Par exemple, une IFRAME consisterait à demander à un favicon sans la montrer. Pire encore, en Chrome et Android un IFRAME va générer 3 demandes pour l'icone:

"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

Celui-ci utilise les données d'URI et peut être utilisé pour éviter les faux favicon demandes:

<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon"> 

Pour les références, voir ici:

Le Chrome bug/comportement sera probablement corrigé dans les prochaines versions.

Voici la soumission de bug pour voter:

Mise à JOUR 1:

D'après les commentaires (jpic), il semble comme Firefox >= 25 n'aime pas la syntaxe ci-dessus plus. J'ai testé sur Firefox 27 et il ne fonctionne pas alors qu'il travaille toujours sur Webkit/Chrome.

Voici donc une nouvelle qui devrait couvrir tous les navigateurs récents. J'ai testé Safari, Chrome et Firefox:

<link rel="icon" href="data:;base64,=">

J'ai laissé de côté le "raccourci" nom de l'attribut "rel" valeur puisque c'est uniquement pour les IE et les versions de IE < 8 n'est pas comme dataURIs. Pas testé sur IE8.

Mise à JOUR 2:

Si vous avez besoin de votre document à valider contre HTLM5 utiliser ceci à la place:

<link rel="icon" href="data:;base64,iVBORw0KGgo=">

61voto

Matthew Points 384

Je crois que je l'ai vu (je n'ai pas testé ou utilisé personnellement):

<link rel="shortcut icon" href="#" />

Quelqu'un a une expérience similaire?

EDIT:

Je viens de tester l'extrait ci-dessus et sur une contrainte d'actualisation complète, pas de favicon demandes ont été vus dans un violon. J'ai testé contre IE8 (Compat mode IE7 normes) et FF 3.6.

37voto

Ionuț G. Stan Points 62482

Vous ne pouvez pas. Tout ce que vous pouvez faire est de prendre que l'image aussi petite que possible et de définir certains invalidation de cache-têtes (Expires, Cache-Control), loin dans l'avenir. Voici ce que Yahoo! a à dire à propos de favicon.ico demandes.

6voto

Marcio Simao Points 2039

Une solution très simple est de mettre le code ci-dessous dans votre .htaccess. J'ai eu le même problème et il résoudre mon problème.

<IfModule mod_alias.c>
    RedirectMatch 403 favicon.ico
</IfModule>

Référence: http://perishablepress.com/block-favicon-url-404-requests/

4voto

David Hobs Points 718

Il y a un tas de bonnes réponses, mais je pense que la meilleure réponse ainsi que l'examen de solutions de rechange est sur ce Débordement de Pile Q&A. Le meilleur semblait être en base64 encode l'image en js, et nourrir la favicon lien avec une table de hachage, ce dernier a suggéré ci-dessus.

Quelques autres variantes ont été proposées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X