【web前端】element-ui框架在線上環(huán)境偶爾出現(xiàn)iconfont圖標(biāo)亂碼的問題,解決辦法

使用element-UI的項(xiàng)目,打包部署以后,偶爾會(huì)出現(xiàn)iconfont顯示亂碼


iconfont顯示為亂碼

但是刷新以后就變成正常了。

經(jīng)過研究以后發(fā)現(xiàn),圖標(biāo)字體的content經(jīng)過scss編譯以后變成了這樣:


content變成問號(hào)

不過正常情況下圖標(biāo)還是會(huì)顯示的,但是偶爾進(jìn)入頁(yè)面后,所有的iconfont圖標(biāo)會(huì)變成亂碼。

我解決這個(gè)問題的辦法就是直接引入iconfont的css文件,不經(jīng)過scss的編譯,圖標(biāo)的content的就會(huì)是原來的內(nèi)容,一個(gè)轉(zhuǎn)義字符加上數(shù)字字母。像這樣:


content正常

具體做法就是
1.找到項(xiàng)目里自定義element-ui主題的文件element-variables.scss
在這個(gè)文件里本來有一個(gè)引入所有element組件scss文件的一行

@import '~element-ui/packages/theme-chalk/src/index';

把這一行去掉,然后直接element-variables.scss在引入組件的scss文件,當(dāng)然要去掉iconfont的scss
這里是所有組件,你也可以按需引入:

@import '~element-ui/packages/theme-chalk/src/pagination.scss';
@import '~element-ui/packages/theme-chalk/src/dialog.scss';
@import '~element-ui/packages/theme-chalk/src/autocomplete.scss';
@import '~element-ui/packages/theme-chalk/src/dropdown.scss';
@import '~element-ui/packages/theme-chalk/src/dropdown-menu.scss';
@import '~element-ui/packages/theme-chalk/src/dropdown-item.scss';
@import '~element-ui/packages/theme-chalk/src/menu.scss';
@import '~element-ui/packages/theme-chalk/src/submenu.scss';
@import '~element-ui/packages/theme-chalk/src/menu-item.scss';
@import '~element-ui/packages/theme-chalk/src/menu-item-group.scss';
@import '~element-ui/packages/theme-chalk/src/input.scss';
@import '~element-ui/packages/theme-chalk/src/input-number.scss';
@import '~element-ui/packages/theme-chalk/src/radio.scss';
@import '~element-ui/packages/theme-chalk/src/radio-group.scss';
@import '~element-ui/packages/theme-chalk/src/radio-button.scss';
@import '~element-ui/packages/theme-chalk/src/checkbox.scss';
@import '~element-ui/packages/theme-chalk/src/checkbox-button.scss';
@import '~element-ui/packages/theme-chalk/src/checkbox-group.scss';
@import '~element-ui/packages/theme-chalk/src/switch.scss';
@import '~element-ui/packages/theme-chalk/src/select.scss';
@import '~element-ui/packages/theme-chalk/src/button.scss';
@import '~element-ui/packages/theme-chalk/src/button-group.scss';
@import '~element-ui/packages/theme-chalk/src/table.scss';
@import '~element-ui/packages/theme-chalk/src/table-column.scss';
@import '~element-ui/packages/theme-chalk/src/date-picker.scss';
@import '~element-ui/packages/theme-chalk/src/time-select.scss';
@import '~element-ui/packages/theme-chalk/src/time-picker.scss';
@import '~element-ui/packages/theme-chalk/src/popover.scss';
@import '~element-ui/packages/theme-chalk/src/tooltip.scss';
@import '~element-ui/packages/theme-chalk/src/message-box.scss';
@import '~element-ui/packages/theme-chalk/src/breadcrumb.scss';
@import '~element-ui/packages/theme-chalk/src/breadcrumb-item.scss';
@import '~element-ui/packages/theme-chalk/src/form.scss';
@import '~element-ui/packages/theme-chalk/src/form-item.scss';
@import '~element-ui/packages/theme-chalk/src/tabs.scss';
@import '~element-ui/packages/theme-chalk/src/tab-pane.scss';
@import '~element-ui/packages/theme-chalk/src/tag.scss';
@import '~element-ui/packages/theme-chalk/src/tree.scss';
@import '~element-ui/packages/theme-chalk/src/alert.scss';
@import '~element-ui/packages/theme-chalk/src/notification.scss';
@import '~element-ui/packages/theme-chalk/src/slider.scss';
@import '~element-ui/packages/theme-chalk/src/loading.scss';
@import '~element-ui/packages/theme-chalk/src/row.scss';
@import '~element-ui/packages/theme-chalk/src/col.scss';
@import '~element-ui/packages/theme-chalk/src/upload.scss';
@import '~element-ui/packages/theme-chalk/src/progress.scss';
@import '~element-ui/packages/theme-chalk/src/spinner.scss';
@import '~element-ui/packages/theme-chalk/src/message.scss';
@import '~element-ui/packages/theme-chalk/src/badge.scss';
@import '~element-ui/packages/theme-chalk/src/card.scss';
@import '~element-ui/packages/theme-chalk/src/rate.scss';
@import '~element-ui/packages/theme-chalk/src/steps.scss';
@import '~element-ui/packages/theme-chalk/src/step.scss';
@import '~element-ui/packages/theme-chalk/src/carousel.scss';
@import '~element-ui/packages/theme-chalk/src/scrollbar.scss';
@import '~element-ui/packages/theme-chalk/src/carousel-item.scss';
@import '~element-ui/packages/theme-chalk/src/collapse.scss';
@import '~element-ui/packages/theme-chalk/src/collapse-item.scss';
@import '~element-ui/packages/theme-chalk/src/cascader.scss';
@import '~element-ui/packages/theme-chalk/src/color-picker.scss';
@import '~element-ui/packages/theme-chalk/src/transfer.scss';
@import '~element-ui/packages/theme-chalk/src/container.scss';
@import '~element-ui/packages/theme-chalk/src/header.scss';
@import '~element-ui/packages/theme-chalk/src/aside.scss';
@import '~element-ui/packages/theme-chalk/src/main.scss';
@import '~element-ui/packages/theme-chalk/src/footer.scss';
@import '~element-ui/packages/theme-chalk/src/timeline.scss';
@import '~element-ui/packages/theme-chalk/src/timeline-item.scss';
@import '~element-ui/packages/theme-chalk/src/link.scss';
@import '~element-ui/packages/theme-chalk/src/divider.scss';
@import '~element-ui/packages/theme-chalk/src/image.scss';
@import '~element-ui/packages/theme-chalk/src/calendar.scss';
@import '~element-ui/packages/theme-chalk/src/backtop.scss';
@import '~element-ui/packages/theme-chalk/src/infinite-scroll.scss';
@import '~element-ui/packages/theme-chalk/src/page-header.scss';
@import '~element-ui/packages/theme-chalk/src/cascader-panel.scss';
@import '~element-ui/packages/theme-chalk/src/avatar.scss';
@import '~element-ui/packages/theme-chalk/src/drawer.scss';
@import '~element-ui/packages/theme-chalk/src/popconfirm.scss';
@import '~element-ui/packages/theme-chalk/src/common/transition.scss';

這些就是對(duì)element-variables.scss文件的修改,

2.然后就是重新引入iconfont的css文件,
在element-UI里找到已經(jīng)編譯好的iconfont的文件

.\node_modules\element-ui\lib\theme-chalk

在main.js里引入這個(gè)文件夾下的icon.css就行了。

import 'element-ui/lib/theme-chalk/icon.css'

這樣content里面就是正常內(nèi)容了,字體圖標(biāo)也不會(huì)亂碼了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容