React App无法在Azure App Service中启动

时间:2019-06-17 03:07:50

标签: javascript reactjs azure azure-web-sites azure-app-service-plans

我已经为Azure应用服务部署了一个简单的react应用,但它不会启动:

如何使应用程序运行index.html?

enter image description here

5 个答案:

答案 0 :(得分:13)

在天蓝色仪表板>配置>启动命令中添加此命令

pm2 serve /home/site/wwwroot --no-daemon

并重新启动服务器。这为我解决了!

答案 1 :(得分:1)

因此,感谢伯克·荷兰(Burke Holland)。最简单的方法是创建一个运行的构建文件夹

npm run build

然后将构建文件夹复制到目标位置,并添加一个“ ecosystem.config.js”文件。

module.exports = {
  apps: [
    {
      script: "npx serve -s"
    }
  ]
};

有关更多信息,请参见此链接: torchsummary

注意:这适用于部署到Azure中的Node Linux App Service实例。这种方法不需要客户端路由配置!

对于Windows App服务,您可以创建用于配置客户端路由的配置文件。

答案 2 :(得分:1)

转到Azure配置>常规设置

  • 如果您的build文件夹位于项目的根目录

启动命令:pm2 serve /home/site/wwwroot --no-daemon --spa

  • 如果您的build文件夹位于客户文件夹中,只需添加路径

启动命令:pm2 serve /home/site/wwwroot/client/build --no-daemon --spa


注意:

确保使用Azure应用服务linux服务器。

我添加了--spa,并添加了结尾以解决react-router重定向的问题,使用--spa选项pm2将自动将所有查询重定向到index.html,然后react-router将发挥它的魔力。

答案 3 :(得分:0)

如果您部署到Node Linux Web App,则默认文档将位于List<String> list = Arrays.asList("20", "42", "55"); Map<String, List<String>> serviceMap = list.stream() .collect(Collectors.toMap(Function.identity(), a -> new ArrayList<>())); 中的hostingstart.html

根据this

  

默认情况下,当您创建Node.js应用时,它将使用   默认将hostingstart.html作为默认文档,除非将其配置为   查找其他文件。您可以使用JavaScript文件进行配置   您的默认文档。在根目录中创建一个名为index.js的文件   您网站的文件夹

因此,请转到您的ssh终端,导航至/home/site/wwwroot/。使用以下代码在此处创建index.js:

/home/site/wwwroot

注意:请务必在此文件夹中运行npm install --save express,否则您的应用程序服务将在启动时崩溃

重新启动,它将配置index.html作为应用程序的默认文档。

答案 4 :(得分:0)

您不需要按照其他答案中的说明安装Express和配置index.js,因为这需要更改配置,并且不确定应用扩展事件是否会将这些安装保留在新实例中。

简便的方法是使用pm2,因为那已经是堆栈的一部分。将以下启动命令传递给该应用

pm2 serve /home/site/wwwroot --no-daemon

重新启动后,它应该从docroot(/ home / site / wwwroot)中选择页面