我们在工作中遇到了一个仅在 chrome 中发生的奇怪问题。看起来 css 文件正在被缓存,并且该文件的内容没有被重新下载。
问题是,当使用新会话(例如“私人会话”)时,图像“mainSprite.png”没有显示出来。
经过一些测试,我认为问题与我们在用户未通过身份验证的情况下在开始时进行重定向有关。据我了解,它可能无法完成css文件中链接的精灵的下载。一旦重定向开始,它将缓存一个无效对象,然后在接下来的页面上,它将无法显示正确的图像,因为它缓存了一些错误的东西。
奇怪的是,它实际上在某个时候完全加载了图像。但它看起来并没有在记忆中刷新它......
在第一次加载和图像正确显示时开始重定向之前,我做了一秒钟的超时。这是一个快速修复,我不能指望每台计算机在 1 秒内加载 css 中包含的每个图像。
编辑
据我所知,它看起来真的像一个比赛条件。我改变了加载顺序。我们使用 require.js。我没有在css之后加载js,而是在之前开始加载js。并且图像现在可以在我的本地服务器上正确加载。
如果有人有兴趣研究它:
编辑 2
当图像不可见时,打开新标签也会遇到同样的问题。关闭浏览器并重新打开它将在第一次加载时起作用,并且图像不会被下载而是从缓存加载,这意味着在关闭浏览器之前,图像确实已经下载。