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

时间:2011-09-19 10:58:32

标签: css jsf icefaces

我在应用程序中遇到了一段奇怪的错误并且无法找到解决方案,即使在google和stackoverflow上也是如此 我发现没有任何东西符合我的问题。

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

  • ICEfaces 1.8.1& JSF 1.2
  • Seam 2.1.1
  • Java 1.6,Update 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" />

这使得:                         

即使页面渲染正确,样式表也不会包含在头部中,它们会被放入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>

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

您有什么建议可以寻找更多或可能的解决方案吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

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