CSS 样式有时仅在 jsf 页面刷新后应用?

发布于 2024-12-05 05:03:44 字数 1339 浏览 0 评论 0原文

我已经在我们的应用程序中遇到一个奇怪的错误而苦苦挣扎了一段时间,但无法找到解决方案,即使在谷歌和 stackoverflow 上也是如此 我发现没有任何符合我的问题。

首先,对应用程序设置进行简短总结:

  • ICEfaces 1.8.1 和 ICEfaces 1.8.1。 JSF 1.2
  • Seam 2.1.1
  • Java 1.6,更新 20
  • 在 JBoss 4.2.2.GA 上运行
  • 应用程序部署为 EAR 文件

如果您需要任何其他信息,请告诉我,我会尽力弄清楚并提供给您。

现在,问题来了:

有时(在应用程序中的随机页面),会创建 JSF 生成的 HTML 代码并将其发送到浏览器, 但不包含任何样式表。页面刷新(按 F5)后,页面将按应有的方式显示,并应用所有样式。 在某些页面上,错误似乎是可重现的,而在其他页面上,错误只是随机发生。 该错误(?)出现在 Opera(11.51,没有测试过早期版本)和 Firefox(应用程序在 3.6 中正常工作,但在 Firefox 6 中不行)。 IE9正常运行。

该站点由形成应用程序布局的顶级页面 (template.xhtml) 组成,所有其他站点都是 通过 ui:include-Tags 包含。

在 head-Tag 中,样式通过 This renders 包含

<link href="#{request.contextPath}/stylesheet/icefaces_style.css" rel="stylesheet" type="text/css" />
<link href="#{request.contextPath}/stylesheet/screen.css"
rel="stylesheet" type="text/css" />

到:

即使页面渲染正确,样式表也不会包含在 head 中,而是放入 body 标记中,渲染为:

<body>
<link type="text/css" rel="stylesheet" href="/myApp/stylesheet/icefaces_style.css">
<link type="text/css" rel="stylesheet" href="/myApp/stylesheet/screen.css">
</body>

如果渲染不正确,则根本不包含任何样式。实际上,template.xhtml 页面的 head-tag 中没有包含任何内容 进入渲染的响应。

您有什么建议可以进一步寻找或可能的解决方案吗?提前致谢!

I've been struggeling a while with a strange bug in our application and wasn't able to find solution, even on google and stackoverflow
i found nothing matching my problem.

First, a short summary of the application setup:

  • ICEfaces 1.8.1 & JSF 1.2
  • Seam 2.1.1
  • Java 1.6, Update 20
  • running on JBoss 4.2.2.GA
  • application is deployed as EAR-File

If you need any additional information, please tell me, i will try to figure it out and provide it to you.

Now, here comes the problem:

Sometimes (at random pages in the application), the JSF-generated HTML-Code is created and send to the browser,
but no stylesheets are included. After a page refresh (hitting F5) the page is displayed as it should and all styles are applied.
On some pages, the error seems to be reproducable, on others it just occurs randomly.
The bug (?) occurs in Opera (11.51, no earlier versions tested) and Firefox (App works normally in 3.6, but not in Firefox 6).
IE9 is working normally.

The site consists of a top level page (template.xhtml) forming the application layout, all other sites are
included via ui:include-Tags.

Into the head-Tag, styles are included via

<link href="#{request.contextPath}/stylesheet/icefaces_style.css" rel="stylesheet" type="text/css" />
<link href="#{request.contextPath}/stylesheet/screen.css"
rel="stylesheet" type="text/css" />

This renders to:

Even if the page renders correct, stylesheets are not included into head, they are put into the body-tag, rendered as:

<body>
<link type="text/css" rel="stylesheet" href="/myApp/stylesheet/icefaces_style.css">
<link type="text/css" rel="stylesheet" href="/myApp/stylesheet/screen.css">
</body>

If it doesn't render correct, simply no styles are included. Actually, nothing from the head-tag of template.xhtml page is included
into the rendered response.

Do you have any suggestions where to look further or possible solutions? Thanks in advance!

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

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

发布评论

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

评论(1

再见回来 2024-12-12 05:03:44

我找不到任何 JSF 或表达式语言文档来说明标头中是否允许表达式。但我之前没有在标头中看到过表达式,因此 ICEfaces 在处理页面时被它混淆并不感到惊讶。将 CSS 样式移至正文中,然后从 ICEfaces 到 Web 浏览器的部分更新将起作用。

I cannot find any JSF or expression language documentation that states whether expressions are allowed in the header or not. But I have not seen expressions in the header before and am not surprised that ICEfaces is confused by it when processing the page. Move the CSS styles into the body and then the partial updates from ICEfaces to the web browser will work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文