关于单页面应用的更新不刷新问题

昨天遇到一个问题,关于vue的单页面应用本地即时更改新增部分 放去远程服务器 访问却有缓存问题 需要强制刷新 

查阅资料得知可能是由于html文件不会被强制替换 造成了不会去服务器获取 默认获取到的是缓存的文件

参考1 2021-12-08 http常用缓存策略及vue-cli单页面应用、服务器端(nginx)如何设置缓存或者禁用 - 简书

参考2 http常用缓存策略及vue-cli单页面应用、服务器端(nginx)如何设置缓存或者禁用_前端李小白的博客-CSDN博客_nginx清除缓存

(1)通过设置nginx 会导致nginx不可用 包括重启 均无法刷新页面 怀疑是自己不会使用

(2) 在html 文件中加入meta 标签 页面未清除缓存 无法达到刷新的效果

(3)在vue.config.js 文件中,找到output写入

注:chunkhash是哈希模式的 根据不同的入口文(Entry)进行依赖文件解析,构建对应的chunk,生成对应的哈希值。

hash :表示所有文件哈希值相同,如果任意文件内容发生变化,则再次打包后,所有哈希值均改变且相同。即当任意module发生改变时,所有bundle的hash都改变且相同。

contenthash :在打包时,我们会在js文件中导入CSS文件,因为他们是同一个入口文件,我们只改了JS代码,但是它的CSS在抽离生成CSS文件时hash也会跟着变,这个时候就需要contenthash来解决。

 output: {      // 输出重构  打包编译后的 文件名称  【模块名称.版本号.时间戳】      

filename: `js/[name].[chunkhash].${timeStamp}.js`, 

     chunkFilename: `js/[id].[chunkhash].${timeStamp}.js`    },// chunkhash

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容