0
我们覆盖了javax.faces.application.ResourceHandlerWrapper
和javax.faces.application.ResourceWrapper
以从文件系统加载静态资源(例如css文件)。我们怎样才能实现这个资源加载机制也发生在文件系统中新加载的css文件中引用的资源? 感谢您的帮助。静态资源的JSF加载资源
我们覆盖了javax.faces.application.ResourceHandlerWrapper
和javax.faces.application.ResourceWrapper
以从文件系统加载静态资源(例如css文件)。我们怎样才能实现这个资源加载机制也发生在文件系统中新加载的css文件中引用的资源? 感谢您的帮助。静态资源的JSF加载资源
在CSS文件中使用EL表达式#{resource}
来动态引用它们,而不是像/context/resources/someLibrary/somePath/someFile.ext
之类的硬编码路径。
E.g.
.foo {
background-image: url(#{resource['someLibrary:somePath/foo.ext']})
}
.bar {
background-image: url(#{resource['someLibrary:bar.ext']})
}
.baz {
background-image: url(#{resource['somePath/baz.ext']})
}
.moo {
background-image: url(#{resource['moo.ext']})
}
这将参考
WebContent
|-- resources
| |-- someLibrary
| | |-- somePath
| | | `-- foo.ext
| | `-- bar.ext
| |-- somePath
| | `-- baz.ext
| `-- moo.ext
:
这样的JSF默认的资源处理程序将使用正确的/javax.faces.resource
网址,这将反过来经过资源处理程序以及替代它们。
谢谢。我们已经使用了EL表达式'#{resource}'。我比较了'url'中的拼写。我们是'url(“#{resource ['someLibrary:somePath/foo.ext']}”)'。我罗了双引号,但它没有帮助。 – Julia 2012-08-14 18:18:21
它应该很好地工作。显然,自定义资源处理程序并不完全正确。运行一个调试器来调查它是如何失败的,然后我们可以谈论它。 – BalusC 2012-08-14 18:19:38