在Spring Boot / Spring MVC应用程序中字体无法正常工作的问题。
问题是所有字体文件都显示各种错误,如下面的
Failed to decode downloaded font: http://localhost:8080/fonts/fontawesome-webfont.woff2?v=4.4.0
OTS parsing error: Failed to convert WOFF 2.0 font to SFNT
Failed to decode downloaded font: http://localhost:8080/fonts/fontawesome-webfont.woff?v=4.4.0
OTS parsing error: incorrect file size in WOFF header
Failed to decode downloaded font: http://localhost:8080/fonts/fontawesome-webfont.ttf?v=4.4.0
OTS parsing error: incorrect entrySelector for table directory
答案 0 :(得分:26)
问题是Maven正在过滤字体文件并破坏它们。
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
修复方法是对pom.xml
<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>
此更改允许在打包过程中不过滤字体。
答案 1 :(得分:12)
另一种方法是更新maven-resources-plugin的配置,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
<nonFilteredFileExtension>woff</nonFilteredFileExtension>
<nonFilteredFileExtension>woff2</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
答案 2 :(得分:0)
也许您的文件application.properties
应该忽略某些路径,例如
security.ignored=/css/**,/js/**,/images/**,/font/**
答案 3 :(得分:0)
遇到相同的问题,浪费了很多时间来解决问题。从Springboot 2.2.4起应该已经修复了该问题。
如果有问题,请首先在已编译的 / target / resources / fonts 文件夹中检查下载的文件大小!
如果您复制了第一个错误的字体文件,则不会以某种方式删除此文件夹中的字体。目的是确保加载的字体可以监视字体大小。
希望这对任何人都有帮助。