OTS parsing error: Failed to convert WOFF 2.0 font to SFNT for font files of Glyphicon for Spring-boot

OTS parsing error: Failed to convert WOFF 2.0 font to SFNT for font files of Glyphicon for Spring-boot

当尝试在通过 Maven 创建的 Spring-boot Java 项目中将 Glyphicons 与 Algular 一起使用时,图标未显示,并且可以在控制台中看到以下错误:

Failed to decode downloaded font: <URL> ..
OTS parsing error: Failed to convert WOFF 2.0 font to SFNT
OTS parsing error: incorrect file size in WOFF header
OTS parsing error: incorrect entrySelector for table directory

这里有一些解决方案,但其中 none 考虑了 Spring-Boot Maven 方案。

似乎 Maven 构建资源以某种方式破坏了这些文件,Bootstrap 无法再正确解码它们,从而导致这些错误。 我发现的一种解决方法是在 maven-resources-plugin:

中添加 nonFilteredFileExtensions
<configuration>
    <nonFilteredFileExtensions>
    <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
    <nonFilteredFileExtension>woff</nonFilteredFileExtension>
    <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
    <nonFilteredFileExtension>eot</nonFilteredFileExtension>
    <nonFilteredFileExtension>svg</nonFilteredFileExtension>
    </nonFilteredFileExtensions>
 </configuration>

在这里,我们可以添加 Maven 损坏的 font/icon 文件的所有扩展名,它应该可以解决问题。

插件部分应该是这样的:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <nonFilteredFileExtensions>
            <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
            <nonFilteredFileExtension>woff</nonFilteredFileExtension>
            <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
            <nonFilteredFileExtension>eot</nonFilteredFileExtension>
            <nonFilteredFileExtension>svg</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>

对于 angular + aws,添加: 'image/svg+xml', 'font/ttf', 'font/woff', 'font/woff2',

到 binaryMimeTypes。