根据互联网号码分配机构(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类型提供服务确实存在任何问题吗?
答案 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"
无论浏览器是否可以连接到互联网都有效。
在开发时,有时我没有连接到互联网。