vue2.0+elementUI+webpack项目打包部署到服务环境页面icon图标偶尔会出现乱码的情况,其实这个问题在项目一开始就遇到了,一直没想明白是什么原因,最近因为客户反馈比较重视这个问题,故又要我去兜底;
项目中不仅使用了elementUI自带的icon,还使用了第三方icon:remixicon与featureicon;并且使用了sass(scss文件)
百度了一下,答案很多,但其实都没有解决问题
1、官网的回答是:因为使用了dark-sass,要改成node-sass,但是我的项目本来就是node-sass,
2、elementUI版本太低,但是我们的的项目版本已经是2.13.x的了,还低吗?最高也就是2.15.x了吧,所以不靠谱;
3、publicPath改为:”../../“,这也算解决办法?
通通不行;
最后想到会不会是scss文件打包编译之后icon图标编码出了问题,正常值是:
.ri-add-box-fill:before { content: "\ea0e"; }
但打包后会被编译成:
.ri-add-box-fill:before { content: "□"; }
在本地运行看了一下,还真是这个问题,于是处理的方法很简单:
将所有定义icon图标的scss文件全部改为css,不参加编译,直接在main.js入口文件引入,最后完美解决;
核心思想就是icon图标定义文件不参加打包编译,直接改为css引入使用,这样对于打包大小几乎不影响。可以试试