为favicon.ico更正MIME类型?

Chu*_*utt 134 html browser favicon mime-types

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

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

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

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

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

mat*_*ata 160

当您提供.ico文件作为favicon时,它并不重要.所有主流浏览器都能正确识别两种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" />
Run Code Online (Sandbox Code Playgroud)

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

注意:MIME类型没有IANA规范image/x-icon,因此它看起来确实比非官方规范更加非官方image/vnd.microsoft.icon.

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

  • FWIW,Google使用image/x-icon作为[favicon](http://www.google.com/favicon.ico). (8认同)

Jür*_*ock 26

我认为这个混乱的根源在这篇维基百科文章中得到了很好的解释.

虽然IANA注册的ICO文件的MIME类型是image/vnd.microsoft.icon,但是它在2003年由第三方提交给IANA,并且不被Microsoft软件识别,后者使用image/x-icon代替.

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

  • 终于有答案了!然而,它仍然是 IANA 注册的 MIME 类型……即使微软自己不使用它。奇怪的。 (4认同)

小智 5

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