2015-12-16 4 views
1

Я пытаюсь переписать ссылки на мои файлы с версией изображений с помощью 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; 

ответ