uniapp h5 钉钉自建h5应用,变更部署文件存在缓存问题,需手动清除缓存

标题前言:

h5项目和pc端项目上线时,有时只有细微的改变,但是部署完后,再次访问却是没变化或者存在请求超时问题。必须手动清除缓存才行。

原因:

浏览器缓存会导致加载旧的资源文件。

解决方案1

在访问链接中添加版本标识,使得每次访问的链接不一样,链接不一样可表现为 参数不一样 就可以

解决方案2

在1的基础上,对打包的css文件和js 文件,添加时间戳作为版本号,是的每次打包的文件名都不一样。
脚手架 配置使用 vue.config.js

vue.config.js(相当于之前的webpack.config.js) 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。你也可以使用 package.json 中的 vue 字段,但是注意这种写法需要你严格遵照 JSON 的格式来写。
在这里插入图片描述
/src/vue.config.js

const path = require('path')

let filePath = ''
let Timestamp = ''
//编译环境判断,判断是否H5环境
if (process.env.UNI_PLATFORM === 'h5') {
  filePath = 'static/js/'; //打包文件存放文件夹路径
  Timestamp = '.' + new Date().getTime();//时间戳
  
  // 给模板文件的css环境变量添加上时间戳
  process.env.VUE_APP_INDEX_CSS_HASH = process.env.VUE_APP_INDEX_CSS_HASH+`${Timestamp}`
}
const productionConfig = (config) => {
        /**此处代码省略**/
}

module.exports = {
        chainWebpack: (config) => {
                const isProduction = process.env.NODE_ENV === 'production'
                if (isProduction) {
                        // 发行或运行时启用了压缩时会生效
                        config.optimization.minimizer('terser').tap((args) => {
                                const compress = args[0].terserOptions.compress
                                // 非 App 平台移除 console 代码(包含所有 console 方法,如 log,debug,info...)
                                // compress.drop_console = true
                                compress.pure_funcs = [
                                        '__f__', // App 平台 vue 移除日志代码
                                        // 'console.debug' // 可移除指定的 console 方法
                                ]
                                return args
                        })
                }
				  
        },
        configureWebpack: (config) => {
			
			/**此处代码省略**/
			
			
		   // 给js文件都添加上时间戳
			config.output.filename=`${filePath}[name].[contenthash:8]${Timestamp}.js`,
			config.output.chunkFilename=`${filePath}[name].[contenthash:8]${Timestamp}.js`
        },
}

以上代码 对css文件和js 文件的文件名添加上了时间戳后缀,

  • 对于js 文件可直接用config.output.filename和config.output.chunkFilename这个两个参数设置,
  • 对于css 文件,要使打包文件和模板文件的引入都同时加入时间戳,这里采用对环境变量 VUE_APP_INDEX_CSS_HASH 进行修改,此方法是基于css文件是复制出来的,也可探索其它方案来打包设置css文件的添加时间戳和模板文件正确的引入

模板文件可自定义设置,在uniapp的src中manifest.json,可配置自定义模板,参考官方文档。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值