从 JSF 2.0 中的 CSS 资源加载图像

发布于 2024-10-25 19:01:16 字数 733 浏览 2 评论 0原文

我是 JavaServer Faces 的新手,我正在尝试执行以下操作:

模板文件“/template.xhtml”使用在该 CSS 文件中加载样式表

<h:outputStylesheet library="style" name="default.css" />

,我想链接到图像,如下所示:

... background-image: url(LINK_TO_MY_IMAGE) ...

如何引用该图像(什么)我应该写入LINK_TO_MY_IMAGE)吗? 我已经尝试使用直接链接 (/contextroot/resources/images/foo.png) 和 JSF 资源表示法 (/contextroot/faces/javax.faces.resource/foo.png ?ln=图像)。

我的目录结构:

/resources/images  => contains image files
/resources/style/default.css
/WEB-INF/web.xml
/WEB-INF/faces-config.xml
/template.xhtml
/demoPage.xhtml  => uses the template.xhtml

所以,到目前为止我的问题是我总是收到“404 Not Found”来加载该图像。

I am new to JavaServer Faces and I'm trying to do the following:

The template file "/template.xhtml" loads a stylesheet using

<h:outputStylesheet library="style" name="default.css" />

Within that CSS file I want to link to images like so:

... background-image: url(LINK_TO_MY_IMAGE) ...

How do I reference that image (what should I write into LINK_TO_MY_IMAGE)?
I already tried to use the direct link (/contextroot/resources/images/foo.png) and the JSF resources notation (/contextroot/faces/javax.faces.resource/foo.png?ln=images).

My directory structure:

/resources/images  => contains image files
/resources/style/default.css
/WEB-INF/web.xml
/WEB-INF/faces-config.xml
/template.xhtml
/demoPage.xhtml  => uses the template.xhtml

So, my problem so far is that I always get a "404 Not Found" for loading that images.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

耳钉梦 2024-11-01 19:01:16

经过多次实验,这在 CSS 中有效:

url("msgError.gif.xhtml?ln=images")

在上面,msgError.gif 是我的资源,位于 /resources/images/msgError.gif
我相信 .xhtml 只是用于使用 JSF FacesServlet(请参阅 web.xml)。

<servlet-mapping>
  <servlet-name>FacesServlet</servlet-name>
  <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

“ln”是库名称。

After much experimentation this works in the CSS:

url("msgError.gif.xhtml?ln=images")

In the above, msgError.gif is my resource located at /resources/images/msgError.gif
I believe the .xhtml is just used to use the JSF FacesServlet (see web.xml)

<servlet-mapping>
  <servlet-name>FacesServlet</servlet-name>
  <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

The "ln" is the library name.

呆头 2024-11-01 19:01:16

将 css 添加到 XHTML

<link href="#{facesContext.externalContext.requestContextPath}/resources/style/default.css" rel="stylesheet" type="text/css" />

和 CSS 中

background-image: /resources/images/someName.png

Add css into your XHTML

<link href="#{facesContext.externalContext.requestContextPath}/resources/style/default.css" rel="stylesheet" type="text/css" />

and in CSS

background-image: /resources/images/someName.png
薆情海 2024-11-01 19:01:16

我不知道为什么有这么多不同的方法...但这是另一种与内联 CSS 一起使用的路径。

<div style="background-image: url('/javax.faces.resource/images/someName.png.xhtml');">
    Text to Display
</div>

I don't know why there are so many different ways... but here is another path that works with inline CSS.

<div style="background-image: url('/javax.faces.resource/images/someName.png.xhtml');">
    Text to Display
</div>
很糊涂小朋友 2024-11-01 19:01:16

SASS (SCSS) mixin

//-----------------------------------------------------------------------------
// resource_url function returns the parameter as url(#{resource['<parameter>']})
// and should be used instead of CSS url() or compass image_url() in JSF applications.
// Define JSF Resource Library resource['standard:

@function resource_url($url) {
  @return url + "(\#{resource['test:#{$url}']})";
}

用法:

background: resource_url('img/footer_trenner.gif') no-repeat center left;

SASS (SCSS) mixin

//-----------------------------------------------------------------------------
// resource_url function returns the parameter as url(#{resource['<parameter>']})
// and should be used instead of CSS url() or compass image_url() in JSF applications.
// Define JSF Resource Library resource['standard:

@function resource_url($url) {
  @return url + "(\#{resource['test:#{$url}']})";
}

Usage:

background: resource_url('img/footer_trenner.gif') no-repeat center left;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文