正确的MIMEtypes的favicon.ico?

根据互联网号码分配机构 (IANA)的规定,所有的.ico文件属于MIMEtypes的image/vnd.microsoft.icon 。 ( 来源 )

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

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

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

我知道你可以逃避不包括一个“types”的.ico文件,但如果你打算包括一个,这应该是什么? 将其作为官方IANAtypes实际存在任何问题吗?

当你提供一个.ico文件作为图标时,没关系。 所有主stream浏览器都能正确识别这两种MIMEtypes。 所以你可以把:

 <!-- 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相同,它将适用于所有浏览器。

注意:对于MIMEtypes的image/x-icon ,没有IANA规范,所以它确实显得比image/vnd.microsoft.icon更加非官方。

唯一不是这样的情况是,如果你试图在<img>标签中使用.ico文件(这是非常不寻常的)。 根据我的testing,浏览器只会将.ico格式的文件作为MIMEtypes的image/x-icon图像提供给服务器,因此,不pipe发布的规范如何,您都应该牢记使用的软件对待MIMEtypes。

我认为这个混乱的根源在这个维基百科文章中有很好的解释。

虽然IANA注册的ICO文件的MIMEtypes为image / vnd.microsoft.icon,但由第三方在2003年向IANA提交,并且不被Microsoft软件识别,该软件使用image / x-icon。

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

我注意到,当使用type="image/vnd.microsoft.icon" ,如果浏览器没有连接到互联网,图标就不会出现。 但是,无论浏览器是否可以连接到互联网, type="image/x-icon"起作用。 开发时,有时我没有连接到互联网。