我如何部署一个Angular.js应用程序?

这可能是一个愚蠢的问题,但我想知道我应该使用什么平台来部署我的Angular.js应用程序? 我尝试使用Heroku,但得到了“没有雪松支持的应用程序检测”错误。 有什么想法吗?

UPDATE

我试图把这个作为一个Node.js应用程序heorku,但仍似乎无法得到它的工作。 在我的应用程序的根目录中有一个web-server.js文件,我在这里引用它在我的Procfile中:

web: node web-server.js 

这里是我的package.json文件,也在根目录下:

 { "name": "medicare-data", "version": "0.0.1", "dependencies": { }, "engines": { "node": "0.10.x", "npm": "1.2.x" }, "respository": "medicare-data", "author": "sararob" } 

我在我的heroku日志中收到“slug编译错误”。 思考为什么这可能不工作?

如果用作node.js应用程序,您可以在heroku上运行Angular应用程序。 通常,当您开始使用Angular种子时,项目中已经有一个节点webserver脚本。 我相信,如果root中有一个package.json文件,heroku会检测并运行它作为一个node.js应用程序。 我会马上回来更新这个答案。

UPDATE

从Heroku文档(我不是专家),它有部署后部分部分: https : //devcenter.heroku.com/articles/nodejs#visit-your-application

基本上告诉你确保你有一个运行的测功机。 您可以通过您的应用程序设置下的networking应用程序来执行此操作,也可以执行以下操作:

 $ heroku ps:scale web=1 

要查看过程是否正在运行,请执行

 $ heroku ps === web: `node web.js` web.1: up for 10s 

我敢打赌,如果你看看你的日志,你会看到这样的东西:

 2013-08-26T12:51:18.257006+00:00 heroku[web.1]: Starting process with command `node scripts/web-server.js` 2013-08-26T12:51:19.109974+00:00 app[web.1]: Http Server running at http://localhost:8000/ 2013-08-26T12:51:34.369092+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET path=/ host=cmwidget.herokuapp.com fwd="77.101.66.230" dyno= connect= service= status=503 bytes= 2013-08-26T12:52:19.445974+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 

这意味着你的Angular种子应用程序正在使用它自己的端口(8000),Heroku不允许这样做。 您需要将端口号的分配交给Heroku。

很容易修复。 修改scripts/web-server.js ,然后改变它:

 this.server.listen(port); 

对此:

 this.server.listen(process.env.PORT || port); 

我改变了这一行var DEFAULT_PORT = 8000; 到:var DEFAULT_PORT = process.env.PORT || 8000;

..然后它的工作。 所以我相信原因是,heroku不喜欢你的应用程序运行在8000端口。