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

Posted

技术标签:

【中文标题】Yeoman Angular.js grunt serve-d 应用程序从 livereload.js?snipver=1 延迟很长【英文标题】:Yeoman Angular.js grunt serve-d app has very long latency from livereload.js?snipver=1 【发布时间】:2014-03-20 18:44:31 【问题描述】:

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

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

我的整个项目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”。

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


【问题讨论】:

将其作为问题发布到 yeoman 的 github 上。或者在那里查找。 【参考方案1】:

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

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

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

【讨论】:

以上是关于Yeoman Angular.js grunt serve-d 应用程序从 livereload.js?snipver=1 延迟很长的主要内容,如果未能解决你的问题,请参考以下文章

npm、bower、gulp、Yeoman 和 grunt 有啥用?

Yeoman和Grunt使用入门教程

Yeoman for Angular,然后“grunt serve”将无法启动

yeoman 角度发生器不会在 grunt serve 上启动

由于 yeoman mean 中的警告,grunt 服务中止

npm,bower,gulp,Yeoman和grunt有什么好处?