Я пытаюсь переписать ссылки на мои файлы с версией изображений с помощью gulp-rev, gulp-rev-replace и gulp-rev -css-гиперссылка.Редактирование Gulp с gulp-rev, gulp-rev-replace, gulp-rev-css-url
мне удалось ревизия файлов и объединить манифесты со следующим кодом глотка:
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;
Ого, да , Настолько менее искусно. – MalcolmOcean