CaT*_*ist 20 caching angularjs
早上好,我在生产环境中有一个Web应用程序.用户每天都在使用它,当我发布更新并且用户返回到Web应用程序时,他查看旧版本的Web应用程序.他需要刷新浏览器才能加载新版本.我怎么解决这个问题?每次发布更新(每周3-4次)时,我都无法告诉数百名用户刷新页面.
juc*_*uco 13
经典的缓存问题.除非另有说明(由网络服务器),否则浏览器将根据文件名缓存资产.因此,当它看到具有相同名称的相同脚本/样式/图像时,它将304并提供缓存版本.有几种方法,你可以:
配置Web服务器以告知浏览器不要缓存该文件.这显然是低效的,因为用户必须一次又一次地下载相同的文件.
将查询字符串参数附加到文件名,例如my-angular-code.js?x=123,再次低效.
指纹您的资产.这在Rails的资产管道文档中得到了很好的解释.有几种方法可以实现这一点,还有可用的grunt任务和gulp任务.本质上,它是仅在内容更改时更改文件名的过程,强制浏览器将其视为新文件.
Man*_*kla 11
一个简单的解决方案是向文件中添加表示时间戳或会话ID的查询字符串.
例如,在我们的弹簧应用中,我们只需使用:
<script src="js/angular/lib/app.js?r=<%= session.getId()%>"></script>
Run Code Online (Sandbox Code Playgroud)
您也可以在特定于服务器的实现中实现相同的解决方案.
| 归档时间: |
|
| 查看次数: |
36227 次 |
| 最近记录: |