在使用 <link rel="icon" href=“/favicon.ico” /> 来为网站添加 favicon.ico 的时候,有的人可能会使用 type="image/x-icon" 来指定 favicon.ico 的 Media Type,有的人可能会使用 type="image/vnd.microsoft.icon" 来指定 favicon.ico 的 Media Type,即:
<!-- image/x-icon -->
<link rel="icon" href=“/favicon.ico” type="image/x-icon"/>
<!-- image/vnd.microsoft.icon -->
<link rel="icon" href=“/favicon.ico” type="image/vnd.microsoft.icon"/>
首先需要明确的是,image/x-icon 与 image/vnd.microsoft.icon 都是用来表示 icon 文件类型的 MIME,它们的区别是,一个是”官方“的 MIME ,另一个是”非官方“的 MIME:
- image/vnd.microsoft.icon 是被 IANA(一个用来管理 MIME 标准的机构)官方注册的 MIME
- image/x-icon 没有被 IANA 注册
这里可以参考 IANA的 Media Types 标准,在这份标准中只有 image/vnd.microsoft.icon 而没有 image/x-icon。
Wikipedia 中有这么一句话:
While the IANA-registered MIME type for ICO files is image/vnd.microsoft.icon, it was submitted to IANA in 2003 by a third party and is not recognised by Microsoft software, which uses image/x-icon instead.
从上面的这句话可以看出,虽然 image/vnd.microsoft.icon 有 Microsoft 的字样,好像是由微软(ICO 格式的图片一开始就是在 Windows 上使用的)提交给 IANA 的 MIME,但事实上 image/vnd.microsoft.icon 与微软没有直接的联系,恰恰相反,微软使用的是 image/x-icon 而不是 image/vnd.microsoft.icon。
从目前来看,大多数的知名网站使用的都是 image/x-icon,如百度与 Google 等等,所以应该来说,image/x-icon 才是事实上 ICO 文件的 MIME 标准,但浏览器一般来说都会正确地识别这两种的 MIME。