html - ¿Corregir el tipo MIME para favicon.ico?
browser mime-types (3)
Creo que la raíz de esta confusión está bien explicada en this artículo de wikipedia.
Mientras que el tipo MIME registrado por IANA para archivos ICO es image / vnd.microsoft.icon, un tercero lo envió a IANA en 2003 y no es reconocido por el software de Microsoft, que usa image / x-icon.
Si incluso el inventor del formato ICO no usa el tipo MIME oficial, también usaré image/x-icon
.
De acuerdo con la Autoridad de números asignados de Internet (IANA), todos los archivos .ico pertenecen a la image/vnd.microsoft.icon
tipo MIME image/vnd.microsoft.icon
. ( Source )
Por ejemplo, <link rel="icon" type="image/vnd.microsoft.icon" href="favicon.ico" />
Sin embargo, el gurú de Internet inteligente, Paul Irish , afirma que esto es incorrecto, y que en realidad sería image/x-icon
. ( Source )
Por ejemplo, <link rel="icon" type="image/x-icon" href="favicon.ico" />
Sé que puede salirse con la suya sin incluir un "tipo" para archivos .ico, pero si tuviera que incluir uno, ¿cuál debería ser? ¿Hay realmente algún problema al servirlo como tipo oficial de IANA?
Cuando sirve un archivo .ico para usarlo como favicon, no importa. Todos los navegadores principales reconocen ambos tipos de mime correctamente. Entonces podrías poner:
<!-- IE -->
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<!-- other browsers -->
<link rel="icon" type="image/x-icon" href="favicon.ico" />
o lo mismo con image/vnd.microsoft.icon
, y funcionará con todos los navegadores.
Nota: Sin embargo, no existe una especificación de IANA para la image/x-icon
tipo MIME, por lo que parece que eso es un poco más image/vnd.microsoft.icon
que image/vnd.microsoft.icon
.
La única vez que esto no sería así sería si intentara usar un archivo .ico en una etiqueta <img>
(lo cual es bastante inusual). En función de mis pruebas, los navegadores solo servirán archivos .ico como imágenes con el image/x-icon
tipo MIME, por lo que siempre vale la pena tener en cuenta cómo el software que está utilizando trata los tipos MIME, ¡independientemente de las especificaciones publicadas!
Me he dado cuenta de que al usar type="image/vnd.microsoft.icon"
, el favicon no aparece cuando el navegador no está conectado a internet. Pero type="image/x-icon"
funciona si el navegador se puede conectar a internet, o no. Al desarrollar, a veces no estoy conectado a internet.