有时候我们修改文件的js或者css,打包上传到服务器后,再访问页面,样式或者图片没有及时更新,要手动清缓存才行。
以前我们是用版本号来解决这个问题,如:
<link rel="stylesheet" href="style.css?v=202007011113" />
只要改变版本号v的值,就可以刷新浏览器端缓存。
这么做的一个缺点是,每次更新css文件,都要手动改变版本号v的值。
但在vue项目中,我们可以通过打包后自动生成的hash值来解决这个问题,如下:
image.png
无论css还是js,img等文件,打包后,都会在文件后缀自动加上一个hash值,每次打包hash都不同。
此外,还需要在index.html中添加 meta,content="no-cache"表示每次打包更新都清缓存
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT">
以上。