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

标签 node.js angularjs gruntjs yeoman yeoman-generator

我关注了Yeoman's guide设置一个 Angular.js 应用程序。 我没有更改任何内容,除了将主机名从“localhost”更改为“0.0.0.0”。

当我执行 grunt serve 时,没有错误。最终,我确实看到了“'Allo,'Allo”首页,但只是在 livereload.js?snipver=1 延迟超过 30 秒之后,它未能 GET。如右图所示,服务器没有输出任何异常。

livereload.js failed and causes a long latency

我的整个项目is on github .

我对 livereload 进行了 grep-ped,发现了一些嫌疑人:

  • /node_modules/grunt-contrib-connect/node_modules/connect-livereload/index.js下面有这两个函数,包含livereload url。第一个链接到“http://my.ip.addr.ess:9000/livereload.js”,它有一个“Cannot GET”。

    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,我想保留它。

有人知道吗?


更新:

我又试了一个全新的机器,from scratch .我仍然遇到同样的问题!这次 livereload 的状态显示“net::ERR_CONNECTION_TIMED_OUT”。

enter image description here

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


最佳答案

想了想,我确定这不可能是 Yeoman 或我的任何 Ubuntu 服务器的问题,因为在我擦干净机器并重新开始后,没有任何变化。它也不是浏览器上被阻止的 IP,因为 Chrome 和 Firefox 都有同样的问题。这不是我的客户端计算机上的阻止 IP,因为问题在另一台计算机上仍然存在。

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

enter image description here

我打开那个端口后,它工作得完美无缺!

关于node.js - Yeoman Angular.js grunt serve-d 应用程序从 livereload.js?snipver=1 延迟很长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21897385/

相关文章:

node.js - 使用 Node JS 在哪里存储 CMS 图像?

javascript - Angularjs 数据-ng- Controller

angularjs - Restangular 错误处理导致 CORS 问题?

javascript - 为什么我的对象的属性被覆盖?

javascript - 为什么 Mocha 测试不在 Travis 上运行,而是在本地运行?

javascript - 在 Node.js 中根据问题数组创建一系列提示

node.js - 使用 Express 显示图像,而不是下载它

visual-studio-2013 - .NET 堆栈中的任务运行器?

gruntjs - 在VSCode中使用目标/参数运行grunt任务

javascript - 如何在 node.js 上连接 reactJS 和 mysql