我现在面临一个奇怪的问题。所以,我正在尝试测试生产构建,并且生成的构建文件包含一个?v=${some random number here}
以防止缓存。
但是,浏览器同步不会加载这些文件。
我想出来的方法是因为我总共有 3 个文件、2 个脚本文件和一个样式表。脚本文件和样式表之一生成了查询字符串。
不包含查询字符串的脚本文件被加载。
我的文件夹结构是
/
index.html
assets/
dist/
mystyle.css?v=1237791723
myscript.js?v=123576231612
这两个 gulp 任务是
gulp.task('localScripts', function() {
return gulp.src(['assets/js/app.js', 'node_modules/owl.carousel/dist/owl.carousel.min.js', 'assets/dist/js/style.js'])
.pipe(babel({ presets: ['babili'] }))
.pipe(concat(`myscript.js?v=${date}`))
.pipe(gulp.dest(dist))
})
gulp.task('joinCss', function() {
return gulp.src(['node_modules/bootstrap/dist/css/bootstrap.min.css', 'assets/dist/css/style.min.css'])
.pipe(concat(`mystyle.css?v=${date}`))
.pipe(gulp.dest(dist))
})
我用来生成构建 index.html 的一项替换 html 任务是
gulp.task('replaceHtml', function () {
gulp.src('./start.html').pipe(htmlReplace({
'js': ['assets/dist/scripts.js', `assets/dist/myscript.js?v=${date}`],
'css': `assets/dist/mystyle.css?v=${date}`
})).pipe(rename('index.html'))
.pipe(gulp.dest('./'))
});
并且,最终生成index.html
的文件具有所需的文件:
<link rel="stylesheet" href="assets/dist/mystyle.css?v=1508761436559">
<script src="assets/dist/scripts.js"></script>
<script src="assets/dist/myscript.js?v=1508761436559"></script>
我的浏览器同步配置是
gulp.task('server', [], function() {
browserSync.init({
server: {
baseDir: "./"
},
port: 9001,
});
});
当我启动服务器时,只会scripts.js
加载。
谁能解释为什么?
我正在使用最新版本的浏览器同步