0

声明:我正在开发一个应用程序,该应用程序以新组件(html、js 和 css 文件)的形式进行了大量更新。我遇到的问题是 js 文件需要清除缓存或刷新一些浏览器页面才能按预期使用新文件,所以我们考虑的修复是通过 gulp 对 js 和 css 文件进行版本控制,因为我们已经用它。

问题:尝试使用 gulp-inject 作为系列在 html 中注入文件并添加后缀不起作用。文件已注入,但未附加后缀。

代码

gulp.task("inject", function () {
    var timestamp = new Date().getTime();

    var css_vendor = gulp.src([path.dirs.dist + "/vendor/**/*.css", path.dirs.dist + "/vendor.css"], {read: false});
    var css_other = gulp.src([path.dirs.dist + "/**/*.css", "!" + path.dirs.dist + "/vendor/**/*.css", "!" + path.dirs.dist + "/vendor.css", "!" + path.dirs.dist + "/main*.css", "!" + path.dirs.dist + "/components*.css"], {read: false});
    var css_main = gulp.src([path.dirs.dist + "/main*.css"], {read: false});
    var css_components = gulp.src([path.dirs.dist + "/components*.css"], {read: false});
    var js_vendor = gulp.src([path.dirs.dist + "/**/vendor*.js", "!" + path.dirs.dist + "/**/FileAPI*"], {read: false});
    var js = gulp.src([path.dirs.dist + "/**/cex*.js", "!" + path.dirs.dist + "/**/FileAPI*"], {read: false});

    return gulp.src([path.dirs.dist + "/index.html"])
        .pipe(inject(series(css_vendor, css_other, css_main, css_components, js_vendor, js), {relative: true}, {
            addSuffix: timestamp
        }))
        .pipe(gulp.dest(path.dirs.dist));
});
4

1 回答 1

0

您不能添加纯数字或文本作为 gulp-inject 的后缀,后缀应该意味着什么,试试这样的东西:

addSuffix: '?' + timestamp

请注意,如果您要使用这种方法,您应该放弃适当的缓存!

于 2016-03-18T13:54:29.577 回答