博客 / 詳情

返回

IE11刷新後字體圖標消失?fontawesome iconfont

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} /> //新用法

如果有大神有更好的解決方案 歡迎留言

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.