CSS 文件存在但在部署应用程序后第一次被忽略

标签 css proxy websphere browser-cache wicket-1.5

我们面临的问题是,在部署我们的(网络)应用程序的新版本后,任何首次打开该应用程序(重新部署后)的用户都会看到该页面的乱七八糟的版本。如果他按 F5(而不是 Ctrl-F5),则页面会重新加载,一切正常。

我通过观察一个颜色应该是黑色但实际上是白色的跨度,在微观层面上研究了这种行为。我看到浏览器只考虑来自 style.css 的 CSS 样式(其中颜色设置为白色)。然而,它还应该考虑 history.css 中的样式(其中颜色设置为黑色)。在检查器中,history.css 存在(我在检查器的 HTML 头部和 CSS 列表中看到它)但它似乎被简单地忽略了。在 F5 之后查看检查器,考虑了 history.css 文件并设置了正确的颜色。

如果这与 Wicket 相关,则应用程序在部署模式下运行,因此它使用 MessageDigestResourceVersion 命名 CSS 文件。但是,这不像是一个“简单”的缓存问题,因为 history.css 存在但被忽略了。

更新:
这不仅是调动后的第一次。此外,我们从来没有在我们的 DEV 或 UAT 环境中使用它,而是始终在我们的 STAGING 环境中使用它。因此,它似乎确实与某些服务器配置(WAS 7、Apache、反向代理、F5 负载平衡器、mod_security 等)有关,但现在不知道去哪里寻找...

最佳答案

问题是,当为用户创建 session 时,某个参数被重置(仅在 IE9 上)。 F5 负载平衡器使用该参数(实际上是一个 HTTP header 参数:SSO session ID)来识别用户正在使用的 WAS 服务器。由于一些资源是通过 Ajax 添加的,并且在加载页面时 session ID 丢失,F5 试图从另一个 WAS 获取资源,这导致对这些资源的访问被拒绝异常。

关于CSS 文件存在但在部署应用程序后第一次被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12799063/

相关文章:

java - 升级到 WAS 8 后 ServletWrapper 未捕获异常

javascript - 单击时更改 <span> 的内容

proxy - 企业代理背后的 Windows 上的 cargo

java - 强制JDBC不使用代理

java - WebSphere:boundedbuffer.waitGet_ 占用了大部分 CPU

JavaEE 5、WAS 6.0 JSP 的奇怪问题包括

html - 防止 Div 在包装后填充父 Div 宽度

jquery - 视差横幅在 IE10 下不起作用,在其他浏览器中正常

css - IE 8 & 9 忽略 div 宽度 - 如何让这个例子工作?

linux - 使用socks代理进行ssh