為什么我引用bootstrap的font-awesome的圖標不出來,就單單是一個HTML里面引用的?


原文地址:https://www.zhihu.com/question/37015526?sort=created

24 個回答

 

我來猜猜:

1、檢查字體路徑是否加載對了
2、font-awesome樣式文件是否加載對了
3、是HTML中用(千萬別加載CSS的硬編碼),是CSS中用(千萬別加載HTML的硬編碼)
4、是否跨域問題存在

不過我從來未碰到題主所說的這種現象。
 
 

嘗試檢查是否有下列問題:

1. 沒有加載 CSS;
2. 沒有加載字體文件。

另外,font-awesome 是獨立項目,並不屬於 Bootstrap。Bootstrap 中使用的 icon font 叫做 Glyphicons。
 
 
舊版是icon-
新版是fa-
 
 
我發現很多同學都沒有回答到點子上,我自己也遇到了,也解決了這個問題,其實沒那么復雜,很多同學想多了。
因為我這邊的版本是4.4,已經改成了.fa-XXX的形式了。
然后我使用
<i class="fa-home"></i>首頁 
這種樣式進去,發現是個方框。
然后查看了一下css,發現.fa這個樣式才是引入字體文件的。所以,這里的i還要加上.fa這個類
<i class="fa fa-home"></i>首頁 
問題解決!
4之前的版本貌似還是icon,試試看吧!
 
 
因為bootstrap和font-awsome都需要font里的ttf文件,然而bootstrap和font-awsome的文件夾里一個是fonts,一個是font。里面的ttf文件都是必須的。兩個文件font、fonts和里面的ttf文件都需要有。
 
 
根據我的經驗,極有可能是font-awsome的css里指向font文件夾的路徑寫錯了,原始的文件夾與css文件在同級目錄。
 
 
今天也遇到此問題,現在解決了,建立一個fonts文件夾,然后fonts文件夾下面又分別包含兩個文件夾fonts和css,這個第二層fonts的文件夾中包含fontawesome-webfont.ttf。。。等ttf文件,css文件下面包含font-awesome.css文件,然后引入路徑是fonts/css/font-awesome.css
 
 

我這兩天正好遇到一個類似的問題,困擾了兩天終於解決了,其實是沒有在web.xml做js和css文件的攔截處理而已。如果你的路徑確定對的並且下載的js文件也沒有錯,那肯定就是這個原因了。

解決辦法:添加如下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" >就失敗了。
不知道這樣說清楚嗎?
(以上只是我的個人認為,不知道對不對,但大概就是這樣吧)

可以參考這篇博文,下面由我的解釋:
servlet-mapping / 攔截圖片 等靜態,資源
 
 
Bootstrap字體文件夾默認為fonts 而font-awesome字體默認文件夾為font,更改font-awesome.min.css里面的加載路徑就行
 

這種情況很明白不是嗎,有個框框說明html引用font-awesome.css沒問題,問題是你框框里的字體沒法顯示,就是說你缺少了字體。

而這字體是font-awesome項目文件里引用的,你直接本地下載單個font-awesome是沒用。

不信你把你引用的font-awesome路徑改成網絡獲取形式比如cdn或https而不是本地相對路徑,圖標就可能顯示。

答案就在font-awesome源代碼里

so, 既然要本地化那么就必然要遞歸下去。

同樣的道理在於在css文件里引用背景圖片等。

 

把下載好的文件結構直接放到項目中,只引入bootstrap.css就好啦,如果還不出來,你就看看你的項目中是否有其他的css文件,可能是沖突了,基本就這兩個情況

 
遇到了同樣的問題,不知道題主解決了沒有?
css文件是這樣引入的。

目錄結構是這樣的


我是把整個下載下來的文件放在了css中。

圖標也是不顯示,有什么解決問題的辦法嗎?

 
今天剛好解決了這個問題,在一開始我只導入了font-awesome.min.css文件,然后我就遇到了和題主一樣的問題,需要導入fonts文件夾,並在css文件中修改fonts文件夾路徑為你存放的位置,類似url('../../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular')
以上,希望有幫助
 
我也遇到了,因為是舊版本,改成icon-即可
 
我引用的 font-awesome 在安卓手機上可以正常顯示,蘋果手機山不顯示,電腦查看就顯示一個框
 
我的出來差不多也是這樣子的。是因為有個樣式沖突了。
 
剛遇到一個iconfont 其他的正常顯示 就一個圖標不顯示,最后看字體源碼 原來是那個不顯示的字體圖標由四個部分拼湊成一個,只顯示一個編碼肯定不會顯示圖標
 
加在一個空白的span上
 
<link href="....">里面可加了rel屬性
 
我還是不懂


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM