Yeoman Angular.js grunt serve-d应用从livereload.js有很长的延迟?snipver = 1

我遵循Yeoman的指导来设置一个Angular.js应用程序。 除了从“localhost”到“0.0.0.0”的主机名之外, 我没有任何改变

当我做了grunt serve ,没有错误。 最后,我确实看到了Allo,Allo的首页,但是只有在livereload.js?snipver = 1的延迟超过30秒之后,才能获得GET。 正如你所看到的,服务器不会输出任何exception的东西。

livereload.js失败并导致很长的延迟

我的整个项目在github上 。

我希望能够重新加载,并发现了一些嫌疑犯:

  • /node_modules/grunt-contrib-connect/node_modules/connect-livereload/index.js有以下两个包含livereload url的函数。 第一个链接到“ http://my.ip.addr.ess:9000 / livereload.js ”,它有一个“无法获得”。

     function getSnippet() { /*jshint quotmark:false */ var snippet = [ "<!-- livereload script -->", "<script type=\"text/javascript\">document.write('<script src=\"http://'", " + (location.host || 'localhost').split(':')[0]", " + ':" + port + "/livereload.js?snipver=1\" type=\"text/javascript\"><\\/ script>')", "</script>", "" ].join('\n'); return snippet; }; function snippetExists(body) { if (!body) return true; return (~body.lastIndexOf("/livereload.js?snipver=1")); } 
  • 我的Gruntfile.js设置livereload为true,我想保留。

有人有线索吗?


更新:

我从零开始尝试了一台全新的机器。 我仍然遇到同样的问题! 这次livereload状态显示为“net :: ERR_CONNECTION_TIMED_OUT”。

在这里输入图像描述

更多信息:我正在AWS EC2上运行,仅打开8000和9000端口。


       

网上收集的解决方案 "Yeoman Angular.js grunt serve-d应用从livereload.js有很长的延迟?snipver = 1"

仔细想想之后,我确定它不可能是Yeoman或我的Ubuntu服务器的任何错误,因为在我擦干净机器之后没有任何改变。 在浏览器上也不是阻止的IP,因为Chrome和Firefox都有同样的问题。 这不是我的客户端计算机上的阻止的IP,因为问题在另一台计算机上持续存在。

当我真正查看livereload请求的确切URL时,灯泡熄灭了。 它在端口35729上请求,我的AWS EC2帐户上没有打开一个端口!

在这里输入图像描述

打开这个端口后,它完美无缺地工作!