説明 : JSF アプリケーションで、CSS プロパティを使用してメニューの背景画像を設定しています。
次のようにファイル構造を構成しました
- これは私のCSSコードです
スタイル.css
#menu
{
height:35px;
width:950px;
background:url(images/default.gif);
/*background:url(#{resource['images:default.gif']});
background:url(#{resource['images/default.gif']});
*/
}
このCSSファイルは/resources/css
ディレクトリの下にあり、使用してFaceletsページにcssファイルをインポートしています
<h:head>
<h:outputStylesheet library="css" name="style.css"></h:outputStylesheet>
</h:head>
CSSファイルのインポートに問題はありません
問題の説明
FacesServlet を *.xhtml にマッピングしました。
<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping>
ホームページを実行すると、css で設定されたメニュー画像が読み込まれません
FacesServlet
画像のマップされた構成を削除すると、*.xhtml
完全に読み込まれます
私が試してみました
cssファイルで次の方法を試して、画像をロードしました
background:url(images/default.gif);
background:url(#{resource['images:default.gif']});
background:url(#{resource['images/default.gif']});
しかし、私はまだ解決策を見つけることができませんでした。
更新されたソリューション
にリソース ハンドラーを追加しました
faces-config.xml
<application><resource-handler>org.omnifaces.resourcehandler.UnmappedResourceHandler</resource-handler> </application>
FacesServlet
での構成web.xml
<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> <url-pattern>/javax.faces.resource/*</url-pattern> </servlet-mapping>
/resources/images
ディレクトリの下に画像を配置するcss ファイルの画像アクセス形式
#menu {background: url(images/bg.png) }