JSF 2.0应用程序找不到资源

bgh*_*bgh 2 eclipse glassfish jsf-2

我是开发JSF的新手(一般是Web开发的新手),我试图在页面上放置一个图像.我正在Eclipse中开发我的JSF应用程序并在Glassfish 3.1.2上运行它.我已将Glassfish注册为Eclipse中的服务器,并通过Eclipse运行应用程序.

我在xhtml页面上使用以下标记:

<h:graphicImage library="images" name="logo.png"/>
Run Code Online (Sandbox Code Playgroud)

我在META-INF/resources/images/logo.png中复制了图像.图像没有出现在页面上,当我查看页面源时,我看到了元素

<img src="RES_NOT_FOUND" />
Run Code Online (Sandbox Code Playgroud)

表示未找到图像.

当我将我的应用程序导出到war文件并通过autodeploy文件夹将其部署到Glassfish时,我得到相同的结果 - 页面显示,但图像不会出现.

任何人都可以建议为什么没有找到图像资源?

Bal*_*usC 5

我在META-INF/resources/images/logo.png中复制了图像

只有当项目代表最终以/WEB-INF/libWAR 结束的独立模块JAR时,此位置才有效.

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

您需要将/resources文件夹直接放在公共Web内容中,而不是放在META-INF文件夹中.

WebContent
 |-- META-INF
 |-- WEB-INF
 |    |-- faces-config.xml
 |    `-- web.xml
 |-- resources
 |    `-- images
 |         `-- logo.png
 `-- index.xhtml
Run Code Online (Sandbox Code Playgroud)

也可以看看:


具体问题无关,使用images库名称看起来并不完全正确.只是用

<h:graphicImage name="images/logo.png"/>
Run Code Online (Sandbox Code Playgroud)

也可以看看: