elementUI字體圖標不顯示問題


原文鏈接: 點我

自己搭建的Vue項目,沒有使用vue-cli,引入elementUI時提示字體圖標404,找不到文件,如下錯誤:

GET http://localhost:9090/WEB-INF/content/2fad952a20fbbcfd1bf2ebb210dccf7a.woff 404 (Not Found) 

在網上查了下解決辦法,是因為elementUI的字體圖標是.woff和.ttf格式的,在webpack的loaders中需要配置,在module:{loaders:{ }}中新增內容,如下:

1 {
2         test: /\.(eot|svg|ttf|woff|woff2?)$/,
3         loader: 'file-loader'
4 }

然后通過npm安裝file-loader依賴,命令如下:
npm/cnpm install file-loader --save
如果你足夠幸運那么問題應該解決了。很不幸我就是不幸的那個,如果你也是,那么接着往下看


 

 

404沒有了,可是引入的圖標卻成了這樣子
 
image.png

所有字體圖標全部顯示方框。
多方查證才發現是安裝的file-loader依賴和webpack版本沖突,但是又不敢隨便修改webpack的版本,於是最后采用了一個方法,將file-loader更換為url-loader,於是問題圓滿解決
附上module:{loaders:{ }}中新增的最終代碼:

1 {
2         test: /\.(eot|svg|ttf|woff|woff2?)$/,
3         loader: 'url-loader'
4 }

然后 npm/cnpm install url-loader --save

我遇到這個問題 npm install解決了 原因是webpack.base.conf.js里邊多了一個

1 {
2 test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
3 loader: 'url-loader',
4 options: {
5 limit: 10000,
6 name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
7 }
8 },

分支代碼有改動了,打包后的css文件里引用的字體路徑不對了
原來的:
@font-face{font-family:element-icons;src:url(../fonts/element-icons.535877f.woff) format("woff"),url(../fonts/element-icons.732389d.ttf) format("truetype");font-weight:400;font-style:normal}

現在的
@font-face{font-family:element-icons;src:url(static/fonts/element-icons.535877f.woff) format("woff"),url(static/fonts/element-icons.732389d.ttf) format("truetype");font-weight:400;font-style:normal}

結論:相對路徑引用錯了,"static" 替換成 ".." 指向上一級的同級目錄下的fonts/


免責聲明!

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



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