IE可真是个神奇的浏览器,总会出现各种奇奇怪怪的问题。
问题如下:由于项目需要,使用了多种字体文件 fontawesome、lato 、olympos-font,收到个测试报的bug,IE11刷新后 字体图标不显示了。

刚开始以为是字体文件加载失败了。但直觉告诉我,第一次正常显示刷新后消失估计跟缓存有关。

有两种解决方案

方案一

stackoverflow里的一个解决方案 链接戳这里
主要是https的情况下在IE11上字体文件会有奇怪的缓存问题
让后端移除对字体文件的缓存控制
针对字体文件移除如下两个字段:

cache-control:no-cache/no-store
Pragma: no-cache
方案二(不推荐)

在React中使用Font Awesome 5
不使用字体文件, 直接使用这种组件形式是使用了svg的,在IE11上是不存在上述问题,但是会带来一些新问题

  1. 从前的用法不行了 项目里所有的图标都必须重写
  2. 5.0版本的图标跟5.0之前的图标有差别看起来不一致
  3. 之前的图标在5.0当中找对应的去使用会存在困难
<i class="fa fa-camera-retro"></i> // 旧用法 失效

---------------------

import { faCamera } from "@fortawesome/free-solid-svg-icons";    
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";

<FontAwesomeIcon icon={faCamera} /> //新用法

如果有大神有更好的解决方案 欢迎留言


YOLO_Y
77 声望14 粉丝

专注写bug20年