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} /> //新用法
如果有大神有更好的解決方案 歡迎留言