favicon.ico的MIME类型是否正确?

根据互联网号码分配机构(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类型提供服务是否存在任何问题?

150014 次浏览

当您将.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

我认为这种困惑的根源在 Wikipedia文章中得到了很好的解释。

而ICO文件的IANA注册的MIME类型是 Image/vnd.Microsoft.icon,它于2003年由第三方提交给IANA 使用的Microsoft软件无法识别Party和 改为图像/X-图标.

如果连ICO格式的发明者都不使用正式的MIME类型,我也将使用image/x-icon

我注意到,在使用type="image/vnd.microsoft.icon"时,当浏览器未连接到互联网时,图标无法显示。 但_,无论浏览器是否可以连接到Internet,ABC_0都可以正常工作。 在开发过程中,有时我没有连接到互联网。