我正在开发我的新博客,目前服务器端是NodeJS(使用expressjs ),我在我的计算机上托管服务器。
为了快速发展,我正在使用GulpJS。
在我解释奇怪的之前。我想说两个端口( 3000和80都是打开的)。
3.9.0
0.10.35
2.7.12
这是我的index.js
,我使用node index.js
来启动服务器。
var express = require('express');
var app = express();
app.use(express.static('public'));
app.set('base', '/public');
app.get('/', function(req, res) {
res.sendfile('index.html');
});
var server = app.listen(80, function() {
var host = server.address().address;
var port = server.address().port;
console.log('Example app istening at http://%s:%s', host, port);
});
现在这是我使用gulpfile.js
的重要部分(为简单起见我删除了大多数任务):
var sync = require("browser-sync").create();
gulp.task('browser-sync', function() {
sync.init({
proxy: "http://localhost:80",
browser: "chrome",
port: 3000
});
});
因此,在我的博客上工作一段时间之后,我决定将它展示给朋友,而NodeJS
服务器正在运行且Gulp
正在关注某些html
,{{ 1}}和js
文件,我将sass
发送给我的朋友,域指向我的外部IP,端口domain.ml:3000
是由{{1}定义的代理所致}。
奇怪的是我无法解释:
当我的朋友在网站上玩时,他的行为反映在我身上,这意味着当他点击3000
属性设置为{{}的链接时,我们都访问了gulpfile.js
和 1}},在我的身边,网址已更改为domain.ml:3000
,我还有一个链接,点击后会打开一个标签(转换是由某些 js + css过渡)并且当他的身边上的标签打开时,它也会在我的身边上打开。
我认为它与src
代理有关,但我无法解释或理解这种行为,如果有人能帮助我解决它,我会非常感激,祝你有个美好的一天。
答案 0 :(得分:3)
这基本上就是浏览器同步的意思。您可以同步浏览器以同时测试同一个应用。一旦你制作了一个gulp构建并提供该构建,而不是你的开发版本,那将会改变。
答案 1 :(得分:2)
这是交易,浏览器同步通过您的代理将哈希网址发送到您的服务器(当您点击带有'#'的链接时)该片段的处理方式有所不同。
端口80上的服务器现在是一个从浏览器同步会话重放所有URL的木偶,你们都在浏览器同步端口3000上连接,当你们其中一个发送哈希变化时,你们都收到新的位置你在服务器端口:80现在也有新的位置。