You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

IE11下Favicon问题:为何URL可用而相对路径不可用?

解决IE11中相对路径Favicon不显示的问题

嘿,我之前也跟IE11的favicon较劲过,结合你的情况——第三方绝对URL能正常显示但本地相对路径不行,给你几个针对性的排查和解决思路:

  • 改用根相对路径而非当前目录相对路径
    IE11对相对路径的解析逻辑有时候和Chrome/Firefox不一致,尤其是当你的页面不在网站根目录时。把./assets/favicon.ico改成/assets/favicon.ico(开头的/表示网站根目录),这样不管页面在哪个子目录,都会指向根目录下的assets文件夹,避免路径解析错误。

  • 严格检查favicon.ico的格式和尺寸
    IE11对ICO文件的要求特别“死板”:必须是标准的ICO格式(不能是把PNG改后缀的文件),建议包含16x16、32x32两种尺寸(这是IE11优先识别的尺寸),颜色深度用24位以下。可以用专门的ICO生成工具重新导出符合要求的文件,别直接改后缀凑数。

  • 强制清除IE11的缓存
    IE11的缓存机制非常顽固,哪怕你已经替换了favicon文件,它可能还在加载旧缓存。你可以:

    1. 打开IE11的Internet选项,在“浏览历史记录”里点击“删除”,勾选“临时Internet文件和网站文件”后删除;
    2. 或者给favicon的URL加个版本参数,比如href="./assets/favicon.ico?v=20240520",强制浏览器重新请求新文件。
  • 调整link标签的位置
    IE11要求favicon的link标签放在<head>标签的最前面,最好在<title>标签之前,不要和CSS、JS的link标签混在一起。试试把<link rel="shortcut icon" href="./assets/favicon.ico" type="image/x-icon" />移到head的最顶部位置。

  • 检查服务器的MIME类型配置
    如果服务器返回的.ico文件Content-Type不是image/x-icon,IE11可能会拒绝加载。你需要确认服务器对.ico文件的MIME类型设置:

    • Apache:在.htaccess文件中添加AddType image/x-icon .ico
    • Nginx:在站点配置的types块中添加image/x-icon ico;
    • 如果你用的是其他服务器,找到MIME类型设置项,给.ico绑定image/x-icon类型。

另外,建议你同时保留两个link标签(针对现代浏览器和IE),像这样:

<link rel="shortcut icon" href="/assets/favicon.ico" type="image/x-icon" />
<link rel="icon" type="image/x-icon" href="/assets/favicon_bnp.png" />

这样既能兼容IE11,也能让Chrome/Firefox正常加载PNG格式的favicon。

内容的提问来源于stack exchange,提问作者Andy K

火山引擎 最新活动