JSF 2.0でも同じ問題が発生しました。CSSを使用する必要があり、相対パスを使用したソリューションも機能しませんでした(Choghereが投稿したように)。
私の本では、Facelets を VDL (View Declaration Language) として使用すると、プレーンな HTML ページでも式を使用できると読みました。そこで、CSS に EL を直接配置するというアイデアを思いつきました。注: ファイル名などを変更する必要はありませんでした。
これが私がしたことです。しかし、最初に私のファイル構造:
- /resources/common/overlay.xhtml -> これには次の css が含まれます (複合コンポーネント)
- /resources/common/overlay.css
- /resources/images/logo.png
次に、CSS を示します。
.someclass {
background-image:url("#{resource['images:logo.png']}");
}
この場合、 resourceはJSF 2の暗黙的なオブジェクトであり、 imagesは JSF が参照する必要があるライブラリ(jsf は、リソースの下にあるすべてのライブラリ/ファイル、少なくともデフォルトの ResourceHandler を想定しています)、そしてリソースの名前です。
より深い構造の場合、次のようになります。
#{resource['images/folder:logo.png']}
それが役立つことを願っています;)