JSF 2.0应用程序找不到资源

时间:2012-11-29 09:06:21

标签: eclipse jsf-2 glassfish

我是新手开发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时,我得到相同的结果 - 页面显示,但图像不会出现。

有人可以告知为什么找不到图像资源吗?

1 个答案:

答案 0 :(得分:5)

  

我将图像复制到META-INF / resources / images / logo.png

此位置仅在项目代表独立模块JAR时才有效,该JAR最终以WAR的/WEB-INF/lib结束。

在您的特定情况下,情况似乎并非如此。您的问题中没有任何内容表明您确实正在开发模块JAR文件。显然你已经用这种方式将它直接放在了WAR中。这个不对。

您需要将/resources文件夹直接放在公共网页内容中,而不是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"/>

另见: