背景:
jar包项目,字体图标使用异常
问题描述: 如下图
chrome浏览器显示警告(edge干脆小方框也不显示)如下:
问题产生原因:
问题1: maven filter功能,导致拷贝资源损坏
问题2:页面加载字体文件时,后台以文本的形式响应
解决办法:
问题1:针对maven, filter 功能导致资源拷贝过程损坏问题,采取如下方式解决:
①拷贝静态资源时,使用filter先排除fonts/下文件
②不使用filter再将排除的fonts/下文件,重新拷贝
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>static/fonts/**</exclude>
</excludes>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>static/fonts/**</include>
</includes>
</resource>
普通web项目到此即可;针对jar包项目,请参考问题2解决办法
问题2:针对此问题,后台响应时以stream的形式响应即可
总结:出现此问题,字体图标文件损坏导致,仔细排查请求流程,找出可能造成文件损坏的位置,并解决。
暂时解决办法: 使用cdn地址例如:
http://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css
https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css