Corriger le type MIME pour favicon.ico?

140

Selon l' IANA ( Internet Assigned Numbers Authority ), tous les fichiers .ico sont de type MIME image/vnd.microsoft.icon. ( Source )

Par exemple <link rel="icon" type="image/vnd.microsoft.icon" href="favicon.ico" />

Cependant, le gourou de l'Internet, Paul Irish , affirme que c'est faux, et que ce serait le cas image/x-icon. ( Source )

Par exemple <link rel="icon" type="image/x-icon" href="favicon.ico" />

Je sais que vous pouvez vous en tirer sans inclure un "type" pour les fichiers .ico, mais si vous deviez en inclure un, lequel devrait-il être? Y a-t-il réellement des problèmes à le servir comme type IANA officiel?

Chuck Le Butt
la source
Attention: les favicon.icofichiers peuvent ne pas être de vrais fichiers ".ico". Mon site d'entreprise utilise un png (nommé "favicon.ico") et le sert avec le type "image / png". Le servir avec l'un des types ".ico" mentionnés ici était à LA FOIS faux, car cela provoquait une mauvaise interprétation du navigateur!
Dan H

Réponses:

171

Lorsque vous diffusez un fichier .ico à utiliser comme favicon, cela n'a pas d'importance. Tous les principaux navigateurs reconnaissent correctement les deux types de mime. Vous pourriez donc mettre:

<!-- IE -->
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<!-- other browsers -->
<link rel="icon" type="image/x-icon" href="favicon.ico" />

ou la même chose avec image/vnd.microsoft.icon, et cela fonctionnera avec tous les navigateurs.

Remarque: Il n'y a pas de spécification IANA pour le type MIME image/x-icon, il semble donc que ce soit un peu plus officieux que image/vnd.microsoft.icon.

Le seul cas dans lequel il y a une différence est si vous essayez d'utiliser un fichier .ico dans une <img>balise (ce qui est assez inhabituel). Sur la base des tests précédents, certains navigateurs n'afficheraient que les fichiers .ico sous forme d'images lorsqu'ils étaient servis avec le type MIME image/x-icon. Des tests plus récents montrent: Chromium, Firefox et Edge conviennent aux deux types de contenu, IE11 ne l'est pas. Si vous le pouvez, évitez simplement d'utiliser des icofichiers comme images, utilisez png.

mata
la source
Je n'ai rien choisi nulle part, j'ai essayé d'expliquer les deux cas d'utilisation: 1 - utilisé comme favicon (peu importe le type de mime), 2 - utilisé comme image dans la page Web (IE ne l'affiche correctement qu'avec image / x de type mime) -icône).
mata
Vous dites, vous pouvez utiliser des fichiers .ico à <img src=''>condition qu'ils soient servis comme image / x-image par le serveur Web. Vous dites ensuite que si vous allez utiliser des fichiers .ico comme images dans des pages HTML, vous devez définir le type MIME sur image / x-icon .
Chuck Le Butt
Génial. Au moins, cela a du sens maintenant! Cependant, je ne suis pas vraiment intéressé à servir des fichiers .ico comme images dans un site Web. La question concerne spécifiquement l'utilisation du fichier .ico comme favicons. Si vous reformulez votre réponse, ce serait beaucoup plus utile. Merci.
Chuck Le Butt
Selon wikipedia, image / x-icon vient d'être créé par Microsoft, image / vnd.microsoft.icon est enregistré auprès de l'IANA (mais non enregistré par Microsoft lui-même).
mjaggard
10
FWIW, Google utilise image / x-icon pour leur favicon .
NateS
30

Je pense que la racine de cette confusion est bien expliquée dans cet article de wikipedia.

Alors que le type MIME enregistré par l'IANA pour les fichiers ICO est image / vnd.microsoft.icon, il a été soumis à l'IANA en 2003 par un tiers et n'est pas reconnu par le logiciel Microsoft, qui utilise à la place image / x-icon.

Si même l'inventeur du format ICO n'utilise pas le type officiel MIME, je l'utiliserai image/x-iconaussi.

Jürgen Steinblock
la source
3
Enfin une réponse! Cependant, c'est toujours le type MIME enregistré par l'IANA ... même si Microsoft ne l'utilise pas. Bizarre.
Chuck Le Butt
3

J'ai remarqué que lors de l'utilisation type="image/vnd.microsoft.icon", le favicon n'apparaît pas lorsque le navigateur n'est pas connecté à Internet. Mais type="image/x-icon"fonctionne que le navigateur puisse se connecter à Internet ou non. Lors du développement, je ne suis parfois pas connecté à Internet.

kmcc
la source