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