AZURE Web Apps:部署Angular SPA&来自Github存储库的Node Express服务器

时间:2016-03-02 22:45:31

标签: node.js azure azure-web-sites azure-web-app-service azure-git-deployment

我在Github存储库中有一个webapp,它有一个Angular客户端和一个Node Express后端服务器。我不知道如何将这些同时部署到Azure webapp。这些教程都没有涵盖这一点。他们告诉你要做的唯一事情是在根目录中有一个index.html或server.js,这不是我的应用程序的结构。

但我确实尝试将服务器移动到根目录中的server.js,然后没有发生任何事情。

我不知道从哪里开始。非常感谢您的帮助。

告诉我您需要哪些更多信息,因为我不知道并且没有这方面的文档。

更新:这些似乎都不起作用。我尝试将/的虚拟路径切换到index.html所在的dist文件夹,但这没有做任何事情。

2 个答案:

答案 0 :(得分:0)

您似乎也在https://social.msdn.microsoft.com/Forums/azure/en-US/a6cbc494-dc42-4962-99c7-947cee7ff25a/nodejs-deploying-angular-spa-application-node-server-through-github-continuous-integration?forum=windowsazurewebsitespreview上使用此问题在MSDN上打开了一个帖子。

Azure上的Node.js应用程序应该在应用程序的根目录中有app.jsserver.js

所以这是一个解决方法,如果您希望dist文件夹中的角度应用程序充当Web应用程序的前端,并且expressjs应用程序充当后端服务。

您可以在根目录中部署express js应用程序,也可以在同一根目录中部署angular app文件夹。然后,您可以在exrepssjs路由中配置角度应用程序。 E.G

假设您的角度应用入口在根目录的index.html文件夹中为dist

app.get('/', function(req, res) {
    res.sendfile(__dirname+'/dist/index.html')

}); 

将路由" /"你的角度应用程序。

答案 1 :(得分:0)

要解决您的问题,我建议您在复数视频上查看shayne boyer和john papas课程。他们很好地解释了这个话题。 play-by-play-angular-2-app-deployment

我自己开始在那里,但必须做一些调整才能让它完全运转。

诀窍是在本地构建文件并将构建文件提交到单独的文件夹(dist)。

此外,您还需要添加:

  1. server.js文件。要点server.js(就像你提到的那样)
  2. package.json文件。要点pacakge.json。这告诉azure要使用哪个节点和npm版本。
  3. 添加web.config。要点web.config
  4. 如果您希望在提交时自动部署您的应用,则需要设置githook。单击链接以获取说明。另外,对于githook工作,您需要在您的azure Web应用程序中声明一个APP设置变量声明,名为' Project'值等于你的构建文件夹(在我的情况下= dist。)。

    我在azure中有一个带有工作演示的ng2 repo。 Ng2a.Frontend。你可以在那里找到dist文件夹。