在Vue开发中遇到打包部署之后总是要手动清除浏览器缓存数据的问题,此问题可以用下方式:
1、package.json文件中有一个管理版本号属性:version,在我们每次打包部署之前修改当前版本号
2、在入口文件main.js文件中,加入版本号的判断逻辑,版本号不一致就重新加载,代码如下:
const VUE_APP_VERSION = require('../package.json').version;
const vers = window.localStorage.getItem("Version");
if(VUE_APP_VERSION != vers){
localStorage.clear()
window.localStorage.setItem("Version", VUE_APP_VERSION);
location.reload()
}
或者,nginx部署时,直接禁用缓存
location / {
root /demo/dist/;
try_files $uri $uri/ /index.html;
index index.html;
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
add_header Expires 0;
}