在我的迷航环境中使用gulp-livereload (用puphpet生成)有问题。我的电脑是Windows主机,VM是Debian.
我用这个文件:
var gulp = require('gulp'),
less = require('gulp-less')
lr = require('tiny-lr'),
livereload = require('gulp-livereload'),
server = lr()
;
gulp.task('less', function () {
gulp.src('assets/less/*.less')
.pipe(less())
.pipe(gulp.dest('build/css'))
.pipe(livereload(server))
;
});
gulp.task('watch', function() {
gulp.watch('assets/less/*.less', ['less']);
livereload.listen(35729, function(err){
if(err) return console.log(err);
});
});
gulp.task('default', ['watch', 'less']);当Chrome扩展添加神奇的JS文件时,我得到以下消息:
加载资源失败: net::ERR_CONNECTION_TIMED_OUT http://markup.dev:35729/livereload.js?ext=Chrome&extver=0.0.5
但是在我的VM中,如果我运行下面的命令行,我会得到它
wget http://localhost:35729/livereload.js?ext=Chrome&extver=0.0.5发布于 2014-12-02 00:40:34
我没有足够的信息可以确定,但我猜您的问题是您试图从主机访问页面,但是肝负载端口没有被转发( VM有自己的IP地址,可以配置游行者将某些端口转发到主机,使它们“看起来”是主机上的本地端口)。
尝试将以下行添加到Vagrantfile中
config.vm.network "forwarded_port", guest: 35729, host: 35729(有关文档,请参阅:ports.html)
或者,如果您直接访问VM (也就是说,您已经将markup.dev映射到了客户的IP),那么可能值得验证的是,您的VM上没有配置防火墙,可能会从外部访问阻止livereload端口。
发布于 2015-01-14 17:26:28
在我的例子中,端口转发自动工作。但是,我必须将VM的IP指定为主机:
livereload.listen({
host: '192.168.33.10'
});更新:传递null也有效:
livereload.listen({
host: null
});我猜想底层http服务器在传递'localhost' 明确地说时的行为有所不同。
https://stackoverflow.com/questions/27015379
复制相似问题