我來猜猜:css
一、檢查字體路徑是否加載對了
二、font-awesome樣式文件是否加載對了
三、是HTML中用(千萬別加載CSS的硬編碼),是CSS中用(千萬別加載HTML的硬編碼)
四、是否跨域問題存在html
嘗試檢查是否有下列問題:前端
1. 沒有加載 CSS;
2. 沒有加載字體文件。web
<i class="fa-home"></i>首頁
<i class="fa fa-home"></i>首頁
我這兩天正好遇到一個相似的問題,困擾了兩天終於解決了,實際上是沒有在web.xml作js和css文件的攔截處理而已。若是你的路徑肯定對的而且下載的js文件也沒有錯,那確定就是這個緣由了。bootstrap
解決辦法:添加以下js css攔截處理
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>跨域
緣由:用servlet-mapping用來截獲請求的,在加載請求的時候攔截你定義的資源名或路徑,好比js、css、圖片等靜態資源的,若是沒有添加截獲請求,那在加載頁面的時候就沒法處理靜態資源文件了,就加載不出來。
好比你在網上找到一個css樣式庫,引用在線的連接能夠加載 如<link href="xxx.xxx.xxx.css">是能夠的,
可是你把這個css下載下來,在本地引入 <link href="<%=request.getContextPath()%>/xxx.css" >就失敗了。
不知道這樣說清楚嗎?
(以上只是個人我的認爲,不知道對不對,但大概就是這樣吧)網絡
這種狀況很明白不是嗎,有個框框說明html引用font-awesome.css沒問題,問題是你框框裏的字體無法顯示,就是說你缺乏了字體。app
而這字體是font-awesome項目文件裏引用的,你直接本地下載單個font-awesome是沒用。svg
不信你把你引用的font-awesome路徑改爲網絡獲取形式好比cdn或https而不是本地相對路徑,圖標就可能顯示。字體
答案就在font-awesome源代碼裏
so, 既然要本地化那麼就必然要遞歸下去。
一樣的道理在於在css文件裏引用背景圖片等。