我正在尝试用gulp、gulp替换和gulp css-url重写对我的版本图像文件的引用。
我已经成功地修改了这些文件,并将清单与以下gulp代码合并:
gulp.task('revision', function(callback){
runSequence('revision-images', 'revision-scripts', 'revision-css', 'revreplace', callback);
});
gulp.task('revision-scripts', function(){
return gulp
.src('./build/*.js')
.pipe(rev())
.pipe(gulp.dest('./dist/build'))
.pipe(rev.manifest({
base: process.cwd(),
merge: true
}))
.pipe(gulp.dest('./dist'));
});
gulp.task('revision-css', function(){
return gulp
.src('./build/*.css')
.pipe(rev())
.pipe(override())
.pipe(gulp.dest('./dist/build'))
.pipe(rev.manifest({
base: process.cwd(),
merge: true
}))
.pipe(gulp.dest('./dist'));
});
gulp.task('revision-images', function(){
return gulp
.src(['./static-assets/img/*.*'])
.pipe(rev())
.pipe(gulp.dest('./dist/static-assets/img'))
.pipe(rev.manifest({
base: process.cwd(),
merge: true
}))
.pipe(gulp.dest('./dist'));
});
gulp.task("revreplace", function(){
var manifest = gulp.src('./dist/rev-manifest.json');
return gulp.src('./index.html')
.pipe(revReplace({
manifest: manifest
}))
.pipe(gulp.dest('./dist'));
});这将在正确的位置生成合并的清单文件,并且还会正确地生成版本化的静态资产。
问题是它没有重写版本化CSS中对版本化映像的引用。
在运行'revision-css'时,我确实看到了对另一个CSS导入的更新引用,但是图像引用仍然是非版本文件的引用。
我首先使用运行序列包强制版本控制和清单合并,这样替换就会在最后执行,但我不确定运行序列是否是问题所在。
我的图片在CSS中通常是这样引用的:
background: url("../static-assets/img/nav-logo.png") no-repeat;发布于 2015-12-18 05:09:10
https://stackoverflow.com/questions/34308238
复制相似问题