为favicon.ico更正MIME类型?

时间:2012-12-11 19:43:56

标签: html browser mime-types favicon

根据互联网号码分配机构(IANA),所有.ico文件都属于MIME类型image/vnd.microsoft.icon。 (Source

E.g。 <link rel="icon" type="image/vnd.microsoft.icon" href="favicon.ico" />

然而,精明的互联网大师保罗爱尔兰,声称这是错误的,而且它实际上是image/x-icon。 (Source

E.g。 <link rel="icon" type="image/x-icon" href="favicon.ico" />

我知道你可以逃避不包括.ico文件的“类型”,但如果你打算包括一个,它应该是什么?将其作为官方IANA类型提供服务确实存在任何问题吗?

3 个答案:

答案 0 :(得分:147)

当您将.ico文件用作图标时,它并不重要。所有主流浏览器都能正确识别两种mime类型。所以你可以把:

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

或与image/vnd.microsoft.icon相同,它适用于所有浏览器。

注意:MIME类型image/x-icon没有IANA规范,因此它似乎比image/vnd.microsoft.icon更加非正式。

唯一存在差异的情况是,如果您尝试在<img>标记中使用.ico文件(这很不寻常)。 根据之前的测试,某些浏览器只会在使用MIME类型image/x-icon提供时将.ico文件显示为图像。最近的测试显示:Chromium,Firefox和Edge都适用于两种内容类型,IE11则不然。如果可以,请避免将ico文件用作图片,请使用png

答案 1 :(得分:23)

我认为这种混淆的根源在this维基百科文章中得到了很好的解释。

  

虽然IANA注册的ICO文件的MIME类型是   image / vnd.microsoft.icon,它是在2003年由第三个提交给IANA的   派对并且不被Microsoft软件认可,使用   而是图像/ x图标。

如果ICO格式的发明者不使用官方MIME类型,我也会使用image/x-icon

答案 2 :(得分:1)

我注意到在使用type="image/vnd.microsoft.icon"时,当浏览器未连接到互联网时,favicon无法显示。 但type="image/x-icon"无论浏览器是否可以连接到互联网都有效。 在开发时,有时我没有连接到互联网。