Comment prévenir favicon.ico demandes?

Je n'ai pas de favicon.ico, mais IE fait toujours une demande pour elle.

Est-il possible d'empêcher le navigateur de faire une demande pour le favicon de mon site? Peut-être un META-TAG dans L'en-tête HTML?

381
demandé sur Teun Zengerink 2009-08-24 15:37:16

10 réponses

je dirai d'abord qu'avoir un favicon dans une page Web est une bonne chose (normalement).

cependant, il n'est pas toujours souhaité et parfois les développeurs ont besoin d'un moyen d'éviter la charge utile supplémentaire. Par exemple, une IFRAME demanderait une favicon sans l'afficher. Pire encore, dans Chrome et Android une IFRAME générera 3 requêtes pour 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

les utilisations suivantes URI de données et peut être utilisé pour éviter de fausses demandes de favicon:

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

pour les références, Voir ici:

le bug/comportement de Chrome sera probablement corrigé dans les versions à venir.

Voici la soumission du bug pour que vous votiez:

mise à JOUR 1:

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

donc voici le nouveau qui devrait couvrir tous les navigateurs récents. J'ai testé Safari, Chrome et Firefox:

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

j'ai omis le nom" raccourci "de la valeur de l'attribut" rel " puisque c'est seulement pour L'ancienne IE et les versions D'IE < 8 n'aiment pas non plus dataURIs. Non testé sur IE8.

mise à JOUR 2:

si vous avez besoin de votre document pour valider par rapport à HTML5, utilisez ceci à la place:

<link rel="icon" href="data:;base64,iVBORw0KGgo=">
443
répondu Diego Perini 2017-09-10 14:07:14

je crois que j'ai vu ce (Je ne l'ai pas testé ou utilisé personnellement si) :

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

quelqu'un a eu une expérience similaire?

EDIT:

je viens de tester l'extrait ci-dessus et sur un rafraîchissement complet forcé, aucune requête favicon n'a été vue dans Fiddler. J'ai testé avec IE8 (Compat mode as IE7 standards) et FF 3.6.

39
répondu mlhDev 2018-09-05 12:43:39

vous ne pouvez pas. Tout ce que vous pouvez faire est de rendre cette image aussi petite que possible et de mettre des en-têtes d'invalidation de cache ( Expires , Cache-Control ) loin dans le futur. Voilà quel Yahoo! doit dire à propos de favicon.ico demandes.

33
répondu Ionuț G. Stan 2012-06-30 09:41:19

la solution suivante est très courte, valide HTML5 et ne provoque pas de bizarreries de IE 8 et plus.

il suffit d'ajouter la ligne suivante à la section <head> de votre fichier HTML:

<link rel="icon" href="data:,">
31
répondu vog 2017-07-22 17:56:25

vous pouvez utiliser .directives htaccess ou server pour refuser l'accès à favicon.ico, mais le serveur enverra un accès refusé réponse au navigateur et cela ralentit toujours l'accès à la page.

vous pouvez arrêter le navigateur en demandant favicon.ico quand un utilisateur retourne sur votre site, en le faisant rester dans la cache du navigateur.

tout d'abord, fournir un petit favicon.ico image, peut être vide, mais aussi petit que possible. J'en ai fait un en noir et blanc de moins de 200 octets. Puis, à l'aide .directives htaccess ou server, définissez L'en-tête Expires du fichier un mois ou deux dans le futur. Lorsque le même utilisateur revient sur votre site, il sera chargé à partir du cache du navigateur et aucune requête ne sera envoyée sur votre site. Pas plus de 404 dans les logs du serveur.

si vous avez le contrôle sur un serveur Apache complet ou peut-être un serveur virtuel, vous pouvez le faire: -

si la racine du document serveur est say /var/www/html, alors ajoutez ceci à / 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>

puis un seul favicon.ico travaillera pour tous les sites hébergés virtuels puisque vous êtes en train de l'identifier. Il sera tiré de la mémoire cache du navigateur pendant un mois après la visite des utilisateurs.

For .htaccess ceci fonctionne (non vérifié par moi): -

AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/x-icon "access plus 1 month"
3
répondu Anon1 2011-07-09 19:12:49

une solution très simple est de mettre le code ci-dessous dans votre .htaccess . J'avais le même problème et ça résout mon problème.

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

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

3
répondu Marcio Mazzucato 2013-11-12 15:32:44

si vous utilisez nginx""

# skip favicon.ico
#
location = /favicon.ico {
    access_log off;
    return 204;
}
3
répondu Vincent-cm 2018-03-17 19:09:02

d'après notre expérience, Apache tombant à la demande de favicon.ico, nous avons commenté des en-têtes supplémentaires dans le .fichier htaccess.

par exemple, nous avions En-tête X-XSS-Protection "1; mode=bloc "

... mais nous avions oublié de sudo a2enmod headers à l'avance. Les commentaires sur les en-têtes supplémentaires envoyés ont résolu notre favicon.ico question.

nous avons également eu plusieurs serveurs virtuels mis en place pour le développement, et seulement échoué avec 500 erreurs de serveur interne lors de l'utilisation de http://localhost et fetching /favicon.ico. Si vous utilisez "curl-v" 151990920 http://localhost/favicon.ico "" et recevoir un avertissement sur le fait que le nom de l'hôte n'est pas dans le cache du résolveur ou quelque chose à cet effet, vous pourriez rencontrer des problèmes.

cela pourrait être aussi simple que de ne pas aller chercher (nous avons essayé et cela n'a pas fonctionné, parce que notre cause fondamentale était différente) ou de chercher des directives dans apache2.conf ou .htaccess qui pourrait être à l'origine d'étranges messages d'erreur internes de 500 serveurs.

nous avons trouvé qu'il a échoué si rapidement il n'y avait rien d'utile dans les journaux d'erreurs D'Apache que ce soit et a passé une matinée entière à changer de petites choses ici et là jusqu'à ce que nous avons résolu le problème de mettre des en-têtes supplémentaires quand nous avions oublié d'avoir mod_headers chargés!

0
répondu J. Declan Young 2016-08-01 04:19:43

je suggère de mettre le site dans un .dossier zip / comprimé. Voici à quoi ressemblait une page Web d'exemple dans un .dossier zip / comprimé: WEBSITE IN .ZIP/COMPRESSED FOLDER

C'est à quoi ça ressemblerait dans un dossier normal: WEBSITE IN NORMAL FOLDER

-4
répondu ANONYMOUS 2017-02-17 20:53:23

, Vous pourriez utiliser

<link rel="shortcut icon" href="http://localhost/" />

de cette façon, il ne sera pas réellement demandé à partir du serveur.

-10
répondu josh 2012-01-30 19:31:22