本解決方案不是最佳,
請用最佳方案:nginx配置來實現: https://github.com/ant-design...
spa項目新上線後,登錄有效期內用戶,能夠立刻使用新上線資源。html
一、相應目錄下,新建文件:static/json/build_str.json
二、build/build.js 修改:前端
// 將當前時間戳寫入json文件 let json_obj = {"build_str": new Date().getTime().toString()} fs.writeFile(path.resolve(__dirname, '../static/json/build_str.json'), JSON.stringify(json_obj), function (err) { if (err) { return console.error(err); } console.log("打包字符串寫入文件:static/json/build_str.json,成功!"); realBuild() })
三、src/main.js 修改:vue
router.beforeEach((to, from, next) => { axios.get('/static/json/build_str.json?v=' + new Date().getTime().toString()) .then(res => { let newBuildStr = res.data.build_str let oldBuildStr = localStorage.getItem('build_str') || '' if (oldBuildStr !== newBuildStr) { console.log('auto refresh') localStorage.setItem('build_str', newBuildStr) location.reload() } }) next() })