前端版本升级后,如果没有手动清除浏览器缓存,系统是如何保证浏览器上是最新版本?
1、文件名添加md5后缀防止缓存或者加个参数t=时间戳
1.1、首页不能进行缓存(因为如果首页index.html进行了缓存,他就侦测不到文件的变化),
方法:
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="-1">
1.2 通过配置grunt或者webpack就能实现静态文件添加md5后缀防止缓存。
如:gulp插件 gulp-rev和gulp-rev-collector
earlyReceivableModalController.js ==> earlyReceivableModalController-41f7a72141.js
gulp-rev会根据文件变动情况加随机码,如果没有变动就不会变。
延伸
gulp默认使用最大并发数执行任务,也就是说所有的任务几乎都是同时执行,而不会等待其它任务。但很多时候,任务是需要有先后次序的,比如要先清理目标目录,然后再执行打包。
run-sequence 的作用就是控制多个任务进行顺序执行或者并行执行 。
gulp run-sequence 用于控制 gulp命令的执行顺序(或并发或先后)
gulp-ng-annotate是一个处理angularjs依赖注入的插件