我在尝试在Heroku上运行简单的Node.js应用程序时遇到了令人沮丧的“错误”。 Heroku本身并不报告错误 - 应用程序已启动(未崩溃,未显示“Hxx”代码);我所得到的是这样的:在Heroku上运行Node.js应用程序时出错
heroku[router]: at=info method=GET path=/index.html
host=realsheek.herokuapp.com fwd="24.63.82.165" dyno=web.1 connect=0ms
service=4ms status=404 bytes=33
当我从浏览器中运行的应用程序,它说Cannot GET
。我不知道它试图GET
。我的应用程序是使用Mozilla的SocialAPI的SocialProvider的测试平台。该应用程序本身是来自https://github.com/mixedpuppy/socialapi-demo
的演示版本。一些错误被修复了,否则这个和这个演示是一样的(我只用修复了的bug就使用了回购)。我有一个index.html
页面,它安装SocialProvider,此时服务器端应用程序启动并执行其余的魔术。它在localhost
上运行良好,但是当我将它推到Heroku时,它失败了。 git push
报告没有问题(只是通常的“无自述数据”警告)。
我很难过,因为我只是无法看到它试图获得什么;显然404错误表明缺少页面,但该应用程序不会调用任何HTML
页面,并且需要的所有内容都存在(如我在localhost
上确认的那样)。
我意识到这并不是很多事情要继续下去,没有看到实际的应用程序,也不知道它正在尝试做什么。没有真正的错误报告 - 只是404状态,显然可能是任何事情。但目前我很难受,所以如果有人有任何见解或建议,我会非常感激。
**更新**我用了一个_LiveHTTPHeaders_工具检查标题并发出一个GET,并且不返回任何内容(以及404状态)。 我开始怀疑Heroku服务器设置不像传统或流行的Web服务器,它设置为提供'index.html'或'default.html'文件来响应GET,只需要路径。相反,感觉Heroku可以让你创建任何你想要的服务器配置,并且“默认”不做任何事情。 我在想,我得到404的原因是我实际上没有返回任何东西 - 这是我的责任。 – Lew
**更新(续)**:因此,在我的'Node.js'应用程序中,以及创建服务器并侦听外部,我还需要提供静态HTML页面以供用户查看。 如果有人知道Heroku并且可以证实这一点,它会让我走上正确的轨道来开发解决方案。谢谢。 – Lew