我正在尝试在我的 JSF 应用程序中使用Font Awesome图标。通过遵循入门说明并将以下内容添加到我的视图部分,我取得了一些成功<h:head>
:
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css"
rel="stylesheet" />
icon-home
当我使用该类时,这给了我一个不错的主页图标:
但是,我不想依赖引导服务器来提供 Font Awesome 资源,所以我试图将这些与我的战争捆绑在一起,并将我的视图配置为使用捆绑的资源。
我正在使用webjars项目创建的预制 JAR 。我的 pom 具有以下依赖项:
<dependency>
<groupId>org.webjars</groupId>
<artifactId>font-awesome</artifactId>
<version>3.2.1</version>
</dependency>
这会将 JAR 放在我的 WAR 的 WEB-INF/lib 目录中。JAR 结构的相关部分是:
META-INF
- MANIFEST.MF
+ maven
- resources
- webjars
- font-awesome
- 3.2.1
- css
- font-awesome.css
- *other css files*
- font
- *font files*
我尝试了以下方法将图标包含在我的项目中:
<h:outputStylesheet library="webjars"
name="font-awesome/3.2.1/css/font-awesome.css" />
但是,这会将以前工作的主页图标呈现为:
我的浏览器(Chrome)在控制台中显示以下错误(域/端口/上下文根更改以保护无辜;):
GET http://DOMAIN:PORT/CONTEXT-ROOT/javax.faces.resource/font-awesome/3.2.1/font/fontawesome-webfont.woff?v=3.2.1 404 (Not Found)
GET http://DOMAIN:PORT/CONTEXT-ROOT/javax.faces.resource/font-awesome/3.2.1/font/fontawesome-webfont.ttf?v=3.2.1 404 (Not Found)
GET http://DOMAIN:PORT/CONTEXT-ROOT/javax.faces.resource/font-awesome/3.2.1/font/fontawesome-webfont.svg 404 (Not Found)
因此,看起来虽然 css 文件已正确解析,但无法找到包含 css 文件引用的字体的文件。我已经检查了 css 文件中的这些引用,它们是:
src: url('../font/fontawesome-webfont.eot?v=3.2.1');
src: url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
这些路径是相对于 css 资源的,所以我认为 JSF 找到它应该没有问题。现在我不知道该怎么办。
任何指针都会很棒!干杯。