我们面临的问题是,在部署新版本的(Web)应用程序后,任何首次打开应用程序的用户(在重新部署之后)都会看到此页面的混乱版本。如果他按下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,......),但不知道现在在哪里寻找......
答案 0 :(得分:0)
问题在于,当创建用户的会话时,某个参数被重置(仅在IE9上)。 F5负载均衡器使用该参数(实际上是HTTP标头参数:SSO会话标识)来标识用户正在使用的WAS服务器。由于某些资源是使用Ajax添加的,并且会话ID在加载页面时丢失,因此F5尝试从另一个WAS获取资源,并导致这些资源的访问被拒绝异常。