如果您正在使用Maven和Apache Wicket,还请检查以下内容,以尝试解决 Font-Awesome 和未加载图标的问题:
例如,如果您将文件放置在以下文件结构中
/src
/main
/java
/your
/package
/css
font-awesome.css
/font
fontawesome-webfont.eot
fontawesome-webfont.svg
fontawesome-webfont.svgz
fontawesome-webfont.ttf
fontawesome-webfont.woff
检查 1)您是否正确使用了 Package Resource Guard 以允许正确加载字体文件?
您的类中扩展 WebApplication 的示例:
@Override
public void init() {
super.init();
get().getResourceSettings().setPackageResourceGuard(new PackageResourceGuard());
}
检查 2)在确保所有字体都正确传输到 Web 浏览器后,检查实际传输到 Web 浏览器的内容,即字体文件的完整性是否发生了变化?使用例如 Firefox 和 DiffDog 的 Web Developer Toolbar(用于文件比较)比较源目录中的文件和传输到 Web 浏览器的文件。
特别是如果您使用 Maven,请注意资源过滤。不要过滤包含 /font 文件的文件夹 - 否则它们将被损坏。
pom.xml 中的示例
<build>
<finalName>Your project</finalName>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
</resource>
<resource>
<filtering>false</filtering>
<directory>src/main/java</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
在上面的示例中,我们没有过滤包含 css 和字体文件的文件夹 src/main/java。
有关过滤二进制数据的更多信息,另请参阅文档:
http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html
特别是文档警告:“警告:不要过滤具有二进制内容的文件,如图像!这很可能会导致输出损坏。如果您同时拥有文本文件和二进制文件作为资源,则需要声明两个互斥的资源集。第一个资源集定义要过滤的文件,而另一个资源集定义要复制的文件不变..."