java ee资源名称

时间:2014-03-09 11:03:43

标签: java-ee jsf-2 glassfish jsf-2.2

我在windows7 x64上的glassfish 4,JSF 2.2下运行了一个java ee应用程序。 我注意到我的所有资源都使用了额外的 .xhtml 扩展程序。

例如:

/javax.faces.resource/bootstrap/css/bootstrap-theme.min.css.xhtml

而不是

/javax.faces.resource/bootstrap/css/bootstrap-theme.min.css

有没有办法删除额外的 .xhtml 扩展程序?

我想这样做的原因是为了避免修改我使用的所有外部js和css库中的路径。

1 个答案:

答案 0 :(得分:2)

你应该看看OmniFaces UnmappedResourceHandler

  

此ResourceHandler实现允许开发人员在/javax.faces.resource/*的URL模式(基本上是ResourceHandler.RESOURCE_IDENTIFIER常量的值)上映射JSF资源,而无需额外的FacesServlet前缀或后缀URL模式在默认生成的资源URL中,例如/javax.faces.resource/faces/css/style.css或/javax.faces.resource/css/style.css.xhtml。此资源处理程序将生成未映射的URL,如/javax.faces.resource/css/style.css。这样做的主要优点是开发人员不再需要#{resource} EL表达式,以便正确引用CSS文件中图像的相对URL。

另外,请看一下这个Prevent suffix from being added to resources when page loads


您还可以使用以下方法从一个js指向其他js / css

假设您要填充某些js对象的cssjs属性:

css:    $(document).find("link[href*='my-third-party-plugin']").attr("href"),
js:     $(document).find("script[src*='my-third-party-plugin']").attr("src")