我们突然遇到一些问题,一些网站的旧版 .css 和 .js 文件会显示在浏览器中。通常,当用户清除浏览器中的缓存时,这些问题就会消失。
我们可以在代码或 IIS7 中做些什么来让浏览器不要使用缓存文件?
在我们最奇怪的案例中,我们有一位客户,他的用户访问了我们的网站,并获得了旧版本的 js 文件。他们清除缓存,加载页面,获取当前版本,页面运行正常。然后他们再次加载文件,突然又获得了旧版本。
您对这种情况可能如何发生有什么想法吗?我能想到三个:
- 当我们清除缓存时,浏览器会以某种方式保留旧版本,并在第二个页面加载之前将其放回缓存中。
- 我们的一台服务器有该文件的旧版本,清除缓存后第一次加载页面时会从一台具有当前版本的服务器中将其拉出,而第二次及后续页面加载时会从具有旧版本的服务器中将其拉出。
- 清除缓存后,第一次加载将直接进入我们的服务器,而后续加载将从客户的 Web 代理上的缓存中提取文件。
我不得不说,这三种情况看起来都不太可能发生,但这是一种可重复的行为。
有任何想法吗?