我必須建立與快遞發生器產生如下一個簡單的快遞網絡服務器:重新加載瀏覽器
express test -ejs
一切工作正常,到目前爲止,我有以下文件夾(有一些變化):
我想現在實現的是:
- 對我在「/routes/*.js」和」 ./*工作的每一個文件。 js「,保存重新加載服務器和t他瀏覽器
- 在「/視圖」的所有文件和「/公衆」,只會在保存時重新加載瀏覽器
的,我已經設置了代理模式如下瀏覽器同步一飲而盡file.js:
var server = require('gulp-develop-server');
var bs = require('browser-sync').create();
(some tasks for checking js and less ...)
var options = {
server: {
path: './bin/www',
execArgv: ['--harmony']
},
bs: {
proxy: {
target: 'http://localhost:5000',
middleware: function (req, res, next) {
console.log(req.url);
next();
}
},
files: ['./public/**/*', './views/*'], // files to watch with bs instantly (.ejs & .css)
logLevel: 'debug'
}
};
gulp.task('start', ['js','less'], function() {
server.listen(options.server, function (error) {
if (!error)
bs.init(options.bs);
});
gulp.watch('./less/*.less', ['less-nonstop']);
gulp.watch(['./*.js', './routes/*.js'], ['restart:forjs']);
gulp.watch('./views/*').on('change', bs.reload);
});
代理工作正常和http://localhost:3000每一個網頁給我同樣的頁面http://localhost:5000(我的Express服務器被配置爲偵聽端口5000)。
現在我的問題是瀏覽器同步並不總是刷新我的瀏覽器重新加載(即使瀏覽器同步獲取重載事件)實際上它只在我在app.js中指定的第一個路徑路徑時刷新。例如,如果我有app.js以下代碼:
app.use('/bonjour', routes);
app.use('/users', users);
瀏覽器的同步功能只會重新加載http://localhost:3000/bonjour瀏覽器,而不是在http://localhost:3000/users或其他任何路徑。即使瀏覽器同步獲取重新加載事件(因爲我可以在控制檯日誌中查看)。看來,當我顯示除app.js中指定的第一個路由之外的任何其他頁面時,我的瀏覽器就像瀏覽器同步的「斷開連接」。
這是爲什麼?我怎樣才能解決它?