最近从 Grunt.js 切换到 Gulp.js,因为很多人告诉我它有多好、有多快(这是真的!)。我已添加BrowserSync到我的 Gulpfile.js,使其更容易在多个设备上进行测试。它工作得很好而且设置很简单。就上下文而言,我 95% 的工作时间都在开发 WordPress 网站,并在启用了多站点的 Apache 虚拟主机上运行它们,并为每个客户端设置了许多本地子域,例如 site1.domain.dev、site2 .domain.dev 等。这非常有效,我已经这样做了几年了。但是,由于 BrowserSync 需要创建我的网站的代理,以便能够同步和注入(inject) CSS,因此当前通过 BrowserSync 运行的网站将路由到 http://localhost:3000
。这很好,我明白为什么需要发生这种情况,但它对 WordPress 有点困惑(因为 URL 不一样等),而且我是 TypeKit/Cloud 字体的大用户,这意味着因为该网站是路由到本地主机后,没有加载任何字体。当然,我可以将 http://localhost:3000
添加到 TypeKit 上每个站点的域列表中,但这感觉像是一种解决方法,并且想知道是否有更好的方法做吧。
我已在 Gulpfile.js 的 BrowserSync 部分添加:
gulp.task('serve', function() {
browserSync({
proxy: 'site1.domain.dev'
});
gulp.watch('assets/styles/source/**/*.scss', ['styles']);
gulp.watch('*.php', reload);
gulp.watch('assets/js/source/*.js', ['scripts']);
gulp.watch('assets/js/plugins/**/*.js', ['plugins']);
});
所以我的问题是,BrowserSync 是否可以直接转到我的 URL ( http://site1.domain.dev ),而不是通过 http://localhost:3000
进行路由?作为额外的好处,如果可以从 BrowserSync 代理属性中删除该域,那就太棒了,因为我使用自动化脚本在我的 WP Multisite 安装上设置一个新站点,并且真的不想编辑我的 gulpfile每次我建立一个新网站时。
感谢您的帮助! :)
最佳答案
对我来说,它的工作方式是指定host
,然后open:
'external'
,如下所示:
browserSync.init({
proxy: 'http://myproject.dev/',
host: 'myproject.dev',
open: 'external'
});
关于proxy - 使用原始 URL,而不是代理,通过浏览器同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27755206/