3

私は JSF で開発するのが初めてで (Web 開発全般も初めて)、ページに画像を配置しようとしています。Eclipse で JSF アプリを開発し、Glassfish 3.1.2 で実行しています。Glassfish を Eclipse のサーバーとして登録し、Eclipse 経由でアプリを実行しています。

xhtml ページで次のマークアップを使用します。

<h:graphicImage library="images" name="logo.png"/>

META-INF/resources/images/logo.png の画像をコピーしました。画像がページに表示されず、ページのソースを表示すると要素が表示されます

<img src="RES_NOT_FOUND" />

画像が見つからないことを示します。

アプリを war ファイルにエクスポートし、autodeploy フォルダー経由で Glassfish にデプロイすると、同じ結果が得られます。ページは表示されますが、画像は表示されません。

画像リソースが見つからない理由を誰かアドバイスできますか?

4

1 に答える 1

6

META-INF/resources/images/logo.png の画像をコピーしました

/WEB-INF/libこの場所は、プロジェクトが、最終的に WARになるスタンドアロン モジュール JAR を表す場合にのみ機能します。

これは、特定のケースでは当てはまらないようです。あなたの質問には、実際にモジュール JAR ファイルを開発していることを示すものは何もありません。どうやら、このように WAR に直接配置したようです。これは正しくないです。

/resourcesフォルダーではなく、パブリック Web コンテンツに直接フォルダーを配置する必要がありMETA-INFます。

WebContent
 |-- META-INF
 |-- WEB-INF
 |    |-- faces-config.xml
 |    `-- web.xml
 |-- resources
 |    `-- images
 |         `-- logo.png
 `-- index.xhtml

以下も参照してください。


具体的な問題とimagesは関係ありませんが、ライブラリ名として使用することは完全に正しいとは言えません。使うだけ

<h:graphicImage name="images/logo.png"/>

以下も参照してください。

于 2012-11-29T11:48:29.560 に答える