每次新版本发布后,都会有用户抱怨没看到更新的内容,看到的界面还是旧的,每次我都叫他们ctrl+F5,次数多了我就就想有没有好的办法解决,大家可有思路。有人会说,页面通过设置<meta>标签,这是一个办法,可目前所有页面生成不是全部都通过唯一的一个入口渲染生成,如果是,我当然直接在入口里加上<meta>标签即可,甚至做成配置化,变成改改参数就可以实现发布后让所有用户的浏览器强制刷新缓存。我没办法每次发布时都通过查找所有要修改的页面加上<meta>标签,然后过一段时间后就去掉。另外,界面比较偏向于胖客户端,js的更新如何实现强制刷新?我想到一个在url后面加后缀的方法。比方:http://localhost/controllers/method
当用户访问这个url时,自动变成
http://localhost/controllers/method?new
这样会不会强制浏览器更新。
或者还有别的思路?

解决方案 »

  1.   

    页面更改无非是CSS、JS、图片等静态文件发生更改,楼主只需在这些文件后面加版本号就行。
    两种方法:
    1:在链接后面加随机数,UUID、毫秒数都可以的,但是这样每次请求都会重新加载,即使工程没有发生任何更改的情况下。个人不推荐。
    2:你可以定义一个常量用来保存你的版本号,只有在CSS、JS等静态文件有修改时更新这个版本号…例如:
    <script type="text/javascript" src="**.js?v=<%=Constants.JS_RES_VERSION%>"></script>个人经验,楼主不妨试试
      

  2.   

    htaccess文件完成该功能。虽无满意回答,但还是谢楼上的。