如何将 React 应用程序的生产 npm 版本部署到 Azure 应用服务

Squ*_*ese 1 javascript azure reactjs azure-web-app-service create-react-app

我正在尝试通过 ftp 将我的 React 应用程序的 npm 构建版本部署到 azure web 服务。我移动了构建文件夹,但是当我加载应用程序的 URL 时,默认屏幕会加载Hey Node Developers!.

我可以通过 github 和 kudu 进行部署。但是,我不认为这是一个生产质量的应用程序,因为它不是npm run build使用create-react-app.

我已经阅读了这个天蓝色指南以及各种博客。我也包含了该web.config文件。没有什么能让我的页面正确加载。

我尝试过使用节点版本10.110.14LTS。我尝试过使用 Linux 和 Windows 应用服务。

Lut*_*lho 6

由于 Linux Azure Web Apps 使用 pm2 来服务节点应用程序,因此您需要配置Azure Linux Web App Service来运行启动命令,以便在“配置>常规设置>启动命令”中为您的 React 应用程序提供服务:

pm2 serve /home/site/wwwroot/ --no-daemon
Run Code Online (Sandbox Code Playgroud)

请记住将路径更改为构建路径(index.html 文件的路径)。

如果您使用react-router并希望通过index.html处理对自定义路由的任何直接访问,您需要--spa在同一命令上添加选项。

pm2 serve /home/site/wwwroot/ --no-daemon --spa
Run Code Online (Sandbox Code Playgroud)

使用--spa选项 pm2 会自动将所有查询重定向到 index.html,然后 React 路由器将发挥其魔力。

您可以在 pm2 文档中找到有关它的更多信息:https://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/#serving-spa-redirect-all-to-indexhtml

我最近处理了同样的问题:React router direct links not working on Azure Web App Linux