【发布时间】:2017-09-09 18:21:09
【问题描述】:
我正在使用带有 browserSync 的 gulp 和下一个配置(简化):
gulp.task('serve', ['compile_styles'], function() {
browserSync.init({
proxy: 'my-local-dev.site'
});
gulp.watch('/public/styles/**/*.scss', ['compile_styles']);
gulp.watch('/public/js/**/*.js').on('change', browserSync.reload);
gulp.watch('/**/*.php').on('change', browserSync.reload);
});
SCSS 更改正在通过 compile_styles 任务中的 .pipe(browserSync.reload({stream: true})) 推送,但正如您所看到的 .js 文件,我使用了简单的 browserSync.reload,它无法正常工作,因为浏览器 (chrome 57.0.2987.133 (64 -bit)) 从其内部缓存加载静态文件,因此我需要进行额外的重新加载以刷新该缓存并强制浏览器再次加载该文件。
同样的东西可以和任何静态资源相关,比如图片、字体等。那么在使用browserSync时如何处理浏览器缓存呢?
【问题讨论】:
-
为什么不将 {stream: true} 添加到您的 js 观察者 browserSync.reload 调用中?除了在 gulp 中调用的内容之外,我不必进行额外的重新加载。您的图像文件应该能够重新注入页面而无需重新加载/刷新。
-
@Mark hmmm...感谢您的想法,我已经稍微重写了我的配置,现在它似乎可以正常工作。我会尽快发布答案。
标签: gulp browser-cache browser-sync