Tipo MIME correto para favicon.ico?

140

De acordo com IANA ( Internet Assigned Numbers Authority ), todos os arquivos .ico se enquadram no tipo MIME image/vnd.microsoft.icon. ( Fonte )

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

No entanto, o guru da Internet mais experiente, Paul Irish , um , afirma que isso está errado e que realmente seria image/x-icon. ( Fonte )

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

Eu sei que você pode se safar de não incluir um "tipo" para arquivos .ico, mas se você incluir um, qual deve ser? Existe realmente algum problema em servi-lo como o tipo oficial da IANA?

Chuck Le Butt
fonte
Nota de cuidado: os favicon.icoarquivos podem não ser verdadeiros arquivos ".ico". Meu site corporativo usa um png (chamado "favicon.ico") e o serve com o tipo "image / png". Servir com um dos tipos ".ico" mencionados aqui estava errado, pois fazia com que o navegador interpretasse mal!
21718 Dan H

Respostas:

171

Quando você está servindo um arquivo .ico para ser usado como um favicon, isso não importa. Todos os principais navegadores reconhecem os dois tipos MIME corretamente. Então você pode colocar:

<!-- 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 o mesmo com image/vnd.microsoft.icon e funcionará com todos os navegadores.

Nota: Não há especificação IANA para o tipo MIME image/x-icon , portanto parece um pouco mais não oficial do que image/vnd.microsoft.icon.

O único caso em que há uma diferença é se você estava tentando usar um arquivo .ico em uma <img>tag (o que é bastante incomum). Com base em testes anteriores, alguns navegadores apenas exibiam arquivos .ico como imagens quando eram servidos com o tipo MIME image/x-icon. Testes mais recentes mostram: Chromium, Firefox e Edge estão bem com ambos os tipos de conteúdo, o IE11 não. Se puder, evite usar icoarquivos como imagens, use png.

mata
fonte
Eu não escolhi nada em nenhum lugar, tentei explicar os dois casos de uso: 1 - usado como favicon (não importa qual tipo de mímica), 2 - usado como um img dentro da página da web (o IE apenas o exibe corretamente com mimetype image / x -ícone).
mata
Você diz que pode usar arquivos .ico <img src=''>desde que sejam servidos como imagem / x-imagem pelo servidor da web. Você então diz que se vai usar arquivos .ico como imagens em páginas HTML, defina o tipo MIME como image / x-icon .
Chuck Le Butt
Ótimo. Pelo menos faz sentido agora! No entanto, não estou realmente interessado em servir arquivos .ico como imagens em um site. A questão é especificamente sobre o uso do arquivo .ico como favicons. Se você reformular sua resposta, isso seria muito mais útil. Obrigado.
precisa saber sobre o chuck le
De acordo com a wikipedia, image / x-icon foi inventado pela Microsoft, image / vnd.microsoft.icon está registrado na IANA (mas não registrado pela própria Microsoft).
Mjaggard
10
FWIW, o Google usa o ícone de imagem / x como ícone favorito .
NateS
30

Eu acho que a raiz dessa confusão está bem explicada neste artigo da Wikipedia.

Embora o tipo MIME registrado pela IANA para arquivos ICO seja image / vnd.microsoft.icon, ele foi enviado à IANA em 2003 por terceiros e não é reconhecido pelo software Microsoft, que usa image / x-icon.

Se mesmo o inventor do formato ICO não usar o tipo MIME oficial, eu o usarei image/x-icontambém.

Jürgen Steinblock
fonte
3
Finalmente uma resposta! No entanto, ainda é o tipo MIME registrado pela IANA ... mesmo que a própria Microsoft não o use. Esquisito.
Chuck Le Butt
3

Percebi que, ao usar type="image/vnd.microsoft.icon", o favicon não aparece quando o navegador não está conectado à Internet. Mas type="image/x-icon"funciona se o navegador pode se conectar à Internet ou não. Durante o desenvolvimento, às vezes não estou conectado à internet.

kmcc
fonte