为了应对页面文件缓存问题,这几天使用gulp-rev
和gulp-rev-collector
为页面css
、js
添加版本号,但是在使用过程中遇到一些问题:
当我使用
gulp
监控改动文件的时候,在html
文件中的版本号总是落后一个,下面图中右边的27610efafa
其实是上一次生成在rev-manifest.json
中的版本号,本次生成的为b264d07c16
,但是没有替换到html
文件中;manifest
文件能否合成为一个;如何删除旧版号的
css
、js
文件。
代码如下:
gulp.task('css', function () {
gulp.src(css_src)
.pipe(minicss())
.pipe(rev())
.pipe(gulp.dest('dist/css'))
.pipe(rev.manifest())
.pipe(gulp.dest('rev/css'))
})
gulp.task('js', function () {
gulp.src(js_src)
.pipe(minijs())
.pipe(rev())
.pipe(gulp.dest('dist/js'))
.pipe(rev.manifest())
.pipe(gulp.dest('rev/js'))
})
gulp.task('version', ['css', 'js'], function () {
gulp.src(['rev/**/*.json', 'xx.html'])
.pipe(revCollector({
}))
.pipe(gulp.dest('dist/html'))
})
gulp.task('change', function () {
gulp.watch(css_src, ['version'])
gulp.watch(js_src, ['version'])
})
我今晚使用也遇到了同样的问题,每次替换的都是上一个版本。不过找到了问题所在。
这样修改就可以了。