【问题标题】:JSF 2.0 app does not find resourceJSF 2.0 应用程序找不到资源
【发布时间】:2012-11-29 09:06:20
【问题描述】:

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

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

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

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

<img src="RES_NOT_FOUND" />

表示找不到图片。

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

谁能告诉我为什么找不到图片资源?

【问题讨论】:

  • 您是否尝试将资源目录放在项目的根文件夹中。?它会起作用的。

标签: eclipse jsf-2 glassfish


【解决方案1】:

我复制了 META-INF/resources/images/logo.png 中的图片

只有当项目代表一个独立的模块 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"/>

另见:

【讨论】:

  • 哇,这很简单!感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 2015-01-21
  • 2011-07-19
  • 1970-01-01
  • 2014-12-01
相关资源
最近更新 更多