使用带有webjars和jsf2.2的bootstrap 3 glyphicons

时间:2014-04-21 00:04:52

标签: twitter-bootstrap-3 jsf-2.2 wildfly

我试图在jsf 2.2中创建一个带bootstrap和glypicons的简单页面。我已经包含了webjar的bootstrap依赖项(打开jar我可以看到字体文件存在)。

将应用程序部署到wildfly时,bootstrap css正常工作,但显示的图标很糟糕(如默认字体或其他东西)。查看浏览器中的网络选项卡,我只看到404错误:

http://localhost:8080/proto/javax.faces.resource/bootstrap/3.1.1/fonts/glyphicons-halflings-regular.woff 404

http://localhost:8080/proto/javax.faces.resource/bootstrap/3.1.1/fonts/glyphicons-halflings-regular.ttf 404

我尝试包含其他依赖项(bootstrap-glypicons),我只得到404错误两次。我错过了什么?

这就是我包括boostrap的方法,它适用于css:

<h:outputStylesheet library="webjars" name="bootstrap/3.1.1/css/bootstrap.min.css" />

这就是我使用css类的方式:

<button><span class="glyphicon glyphicon-minus"></span></button>

2 个答案:

答案 0 :(得分:6)

您应该使用<link>代码而不是<h:outputStylesheet> 例如

<link rel="stylesheet" type="text/css" media="all" href="webjars/bootstrap/3.1.1/css/bootstrap.min.css"/>

---更新
这是因为JSF中的ResourceHandler将库值(webjars)作为参数添加到URI的末尾: 面/ javax.faces.resource /引导/ 3.1.1 / CSS / bootstrap.min.css?LN = webjars

在bootstrap.min.css中CSS有这样的文件引用: url(&#39; ../ fonts / glyphicons-halflings-regular.woff&#39;)格式(&#39; woff&#39;),url(&#39; ../ fonts / glyphicons-halflings-regular .ttf&#39;)格式(&#39; truetype&#39;),

因此,如果您想使用<h:outputStylesheet>,您可以编写自己的ResourceHander,也可以修改bootstrap.min.css并修复glyphicons-halflings-regular.*个文件的路径

在我看来,最好使用标准的html标记<link>而不是<h:outputStylesheet>,因为JSF组件树会更小,并且会影响性​​能。在bootstrap.min.css内部没有EL,因此无需使用<h:outputStylesheet>

答案 1 :(得分:3)

小更新:webjars有几个CSS库的JSF特定版本,如果是bootstrap CSS,下面的工作就可以了:

<h:outputStylesheet library="webjars" name="bootstrap/3.3.5/css/bootstrap-jsf.css" />

请注意-jsf后缀。