Spring Boot - 字体很棒的OTS解析错误:无法转换

时间:2015-12-02 07:25:32

标签: spring-mvc spring-boot font-awesome

在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

4 个答案:

答案 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 文件夹中检查下载的文件大小!

如果您复制了第一个错误的字体文件,则不会以某种方式删除此文件夹中的字体。目的是确保加载的字体可以监视字体大小。

希望这对任何人都有帮助。