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

Vol*_*ker 5 css jsf icefaces

我已经在我们的应用程序中使用了一个奇怪的错误,并且无法找到解决方案,即使在谷歌和stackoverflow我发现没有任何匹配我的问题.

首先,简要介绍应用程序设置:

  • ICEfaces 1.8.1和JSF 1.2
  • 接缝2.1.1
  • Java 1.6,更新20
  • 在JBoss 4.2.2.GA上运行
  • 应用程序部署为EAR-File

如果您需要任何其他信息,请告诉我,我会尽力解决并提供给您.

现在,问题出现了:

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

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

进入head-Tag,样式包括在内

<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" />
Run Code Online (Sandbox Code Playgroud)

这使得:

即使页面渲染正确,样式表也不会包含在头部中,它们会被放入body-tag中,呈现为:

<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>
Run Code Online (Sandbox Code Playgroud)

如果它不正确,则不包含任何样式.实际上,template.xhtml页面的head-tag中没有任何内容包含在呈现的响应中.

您有什么建议在哪里寻找更多或可能的解决方案?提前致谢!

Sim*_*n C 2

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