有没有办法我可以使用gulp来修改我的index.thml以防止CSS缓存?

时间:2016-04-07 07:37:09

标签: javascript node.js gulp build-process browser-cache

我有这个gulpfile.js代码:

gulp.task('make_prod_index', function () {
    gulp.src('index.html')
      .pipe(replace('content/bundles/css.min.css', 'content/bundles/css.min.css&12345'))
      .pipe(rename("index-prod.html"))
      .pipe(gulp.dest('./'));
});

我在想的是,如果我可以在&中添加gulpfile,然后在每次发布时添加一些不同的数字。

这是否可以确保css不被缓存?如果是这样,我怎样才能确保每次发布时都添加不同的数字?

1 个答案:

答案 0 :(得分:1)

您可以获取文件的md5哈希并将其附加到文件中,如下所示:

...
var md5File = require('md5-file')

gulp.task('make_prod_index', function () {
    gulp.src('index.html')
      .pipe(replace('content/bundles/css.min.css', 'content/bundles/css.min.css?' +  md5File('content/bundles/css.min.css')))
      .pipe(rename("index-prod.html"))
      .pipe(gulp.dest('./'));
});

但是,最好更改大多数缓存的文件名,以避免附加查询字符串。某些缓存会将带有查询字符串的文件视为动态文件,并且不会缓存它们。

可以使用gulp-rev任务完成,有关详细信息,请查看docs。根据您的解决方案,可能需要更多工作。但是从我看到的你可以选择简单的gulp-rev-replace