如何在启动更新版本的应用程序时清除浏览器缓存?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在启动更新版本的应用程序时清除浏览器缓存?相关的知识,希望对你有一定的参考价值。
我正在部署我的UI应用程序,它由AngularJS,Grunt和其他UI东西组成。
每当我更新我的UI并使用apache-tomcat重新部署它时,浏览器总是从缓存中获取我的资源。 (作为css,html等新资源的路径相同)
用户需要执行CTRL + F5(硬重载)来清除缓存并使用新资源。
当我重新部署应用程序时,如何强制浏览器清除缓存?
如果不知何故我可以使用angular + grunt来完成这项任务,也可以。
每次重新部署产品时,我都不想更新文件的版本。由于我的文件内部下载了许多html文件。
所以我想以某种方式清除浏览器缓存。
谢谢!
答案
您可以在html文件中添加版本
app.factory('preventTemplateCache', function () {
return {
'request': function (config) {
if (config.url.indexOf('partials') !== -1) {
config.url = config.url + '?t=' + 101;
}
return config;
}
}
})
并将.js文件的版本作为
<script src='app.js?v=101'></script>
101是版本号
另一答案
如果没有文件名版本控制,则无法更新缓存。但您不必手动完成。如果您使用Grunt,只需查看一些npm包。像这样的例子:https://www.npmjs.com/package/grunt-cache-breaker
在重建时,它将为您的资源创建新的哈希值,并将它们注入到您的html文件中。因此,当您的用户下载您的html文件(它们被下载,它们没有被缓存)时,这些html文件将包含具有新名称的css和js等资源,因此浏览器将强制下载而不是从内存中获取这些文件。
以上是关于如何在启动更新版本的应用程序时清除浏览器缓存?的主要内容,如果未能解决你的问题,请参考以下文章