防止Web应用程序升级上的浏览器缓存

时间:2010-01-12 17:01:29

标签: web-applications browser caching upgrade

我有一个非常麻烦的问题,我还没有找到一个好的解决方案。

我允许浏览器缓存所有应用程序静态文件(JS,CSS和图像)以提高性能。

问题是,当我进行升级时,用户仍然使用缓存中的旧版本,这通常会破坏应用程序,并且每次都需要清除缓存以解决问题。

是否有任何良好的多浏览器方法仍然允许缓存文件,但可以强制在需要时重新加载它们?

感谢您的任何信息。

4 个答案:

答案 0 :(得分:7)

将某些内容附加到URL作为参数,例如myresource.css?version=1。该文件将正确提供,这是强制重新加载缓存的技巧。您只需要动态生成html页面。

答案 1 :(得分:0)

我听说过在你希望用户缓存的文件名中使用版本号的说法,但我不能说与其他选项相比有多“好”。

答案 2 :(得分:0)

我能想到的选项:

  • 减少缓存TTL
  • 将可缓存的内容存储在版本化的目录树中,例如:
    • /app/1.2/css /
    • /app/1.2/js /

答案 3 :(得分:0)

您可以使用以下格式进行自动随机版本控制

表示js文件:

<script type="text/javascript" src="js/app.js?seq=<%=DateTime.Now.Ticks%>"></script>

和css文件:

<link rel="stylesheet" type="text/css" href="Styles/styles.css?seq=<%=DateTime.Now.Ticks%>" />