2017-02-24 46 views
0

我已经使用Visual Studio代码创建了一个Angular 1.6.x应用程序,它具有bower的依赖关系。 Angular应用程序与单独的ASP.NET MVC REST/API应用程序进行数据交换(最终使用adal-angular)。如何将Angular SPA(使用http-server)移植到Azure WebApp?

在当地,我使用http-server成功使用npm start运行角度应用:

"scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "start": "start http://localhost:8080/app/index.html && http-server -a localhost -p 8080" 
    }, 

虽然我已经能够顺利拿到角源代码对天青我定义的应用程序服务(验证使用Web应用程序的控制台选项)使用持续交付机制,它不完全是显而易见的如何应用程序将启动,具体如下:

  • 如何天青知道如何做一个“故宫开始”?如果它不是自动的,我在哪里指示这种情况发生?
  • 我将如何指示我的应用程序使用process.env.PORT而不是端口8080?

假设我闯过这个初始问题,是否有在Azure上的HTTP服务器的使用指南?或者还有其他推荐的方式来服务Angular SPA吗?

FWIW,我注意到试图从Azure控制台运行'npm start'导致'ELIFECYCLE'错误。

回答

0

Azure Web App模型托管IIS中的node.js/Angular应用程序,因此需要配置web.config文件。 IIS和节点之间的魔力是iisnode模块:https://github.com/tjanczuk/iisnode,它允许在IIS中托管node.js应用程序。

web.config文件可以指示IIS启动应用程序的app.js(或server.js)文件,该文件将包含对process.env.PORT的引用。

部署节点应用程序的一个很好的总体指南是:https://blogs.msdn.microsoft.com/laurelle/2015/12/01/how-to-deploy-a-node-js-site-into-azure-web-app-to-create-a-website/

最好的指导原则和文件我能找到的关于建立一个web.config是在这里:https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/web.config

0

当您将应用程序部署到Azure WebApp时,Azure将使用IIS来托管您的应用程序,并且只有端口80和443面向公众。因此,您不需要任何其他HTTP服务器就可以在Azure上为您的Web应用程序提供服务。

你可以说明当你访问你的网站时遇到了什么问题,所以我们可以帮助找出那里有什么问题。

+0

谢谢你,艾伦。我在周末发现了这个问题,它通过在Visual Studio中使用'Azure Node.js Express 4'模板来承载IIS,特别是需要正确配置的web.config文件。 – HiDefLoLife