2012-10-09 38 views
1

我们面临的问题是,在部署新版本的(web)应用程序之后,任何第一次打开应用程序(重新部署后)的用户看到一个混乱这个页面的版本。如果他按F5(所以不是Ctrl-F5),那么页面被重新加载并且一切都很好。CSS文件存在但在应用程序部署后第一次被忽略

我调查了一个微观层面的行为,通过查看一个单一的跨度,颜色应该是黑色的,但是是白色的。我看到浏览器只考虑来自style.css(其中颜色设置为白色)的CSS样式。但它也应该考虑history.css中的样式(其中颜色设置为黑色)。在检查器中有history.css(我在HTML头部和检查器的CSS列表中看到它),但它似乎被忽略。在F5之后查看检查员,将考虑history.css文件并设置正确的颜色。

如果这与Wicket相关,应用程序将以部署模式运行,因此它使用MessageDigestResourceVersion来命名CSS文件。但是,由于history.css存在但被忽略,所以它不像“简单”缓存问题。

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

+0

样式表是否可能按照出现在''中的顺序处理? – nunzabar

+0

不是不可能,但会是奇怪的,因为它是一个交叉浏览器问题,只在一个特定的环境中。下次有人面临问题时,我会更仔细地看看头部。 TX。 –

回答

0

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

相关问题