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上是不存在上述问题,但是会带来一些新问题
- 从前的用法不行了 项目里所有的图标都必须重写
- 5.0版本的图标跟5.0之前的图标有差别看起来不一致
- 之前的图标在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} /> //新用法
如果有大神有更好的解决方案 欢迎留言
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。