Javascript 如何将react应用程序的生产npm构建部署到Azure应用程序服务

Javascript 如何将react应用程序的生产npm构建部署到Azure应用程序服务,javascript,reactjs,azure,azure-web-app-service,create-react-app,Javascript,Reactjs,Azure,Azure Web App Service,Create React App,我正在尝试通过ftp将我的react应用程序的npm构建版本部署到azure web服务。我移动了build文件夹,但是当我加载应用程序的URL时,默认屏幕会加载Hey Node Developers 我可以通过github和kudu进行部署。然而,我不认为这是一个生产质量的应用程序,因为它不是使用npm运行构建和CreateReact应用程序构建的 我浏览过这个azure,以及各种博客。我还包括了web.config文件。没有使我的页面正确加载 我尝试过使用节点版本10.1、10.14和LTS

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

我可以通过github和kudu进行部署。然而,我不认为这是一个生产质量的应用程序,因为它不是使用npm运行构建和CreateReact应用程序构建的

我浏览过这个azure,以及各种博客。我还包括了web.config文件。没有使我的页面正确加载

我尝试过使用节点版本10.1、10.14和LTS。我已尝试使用Linux和Windows应用程序服务。

Azure应用程序服务for Windows Node JS 本地Git上载到Azure应用程序服务 在Azure门户>部署>部署中心中打开应用程序服务-如果您已经设置了部署选项,则必须按断开连接。 选择本地Git>应用程序服务构建服务>摘要>完成 选择左上角的FTP/凭据>选择用户凭据-设置密码并保存凭据 回到概述,用您的git用户名复制git部署URL。它应该是以下格式:https://@.scm.azurewebsites.net:443/.git 从计算机上的本地项目文件夹运行npm运行生成 在./build中,在构建完成后运行git init以初始化git repo 运行git remote add azure https://@.scm.azurewebsites.net:443/.git将azure部署添加为推送到的选项 运行git add*和git commit-m${date}和git push azure master:master 系统将提示您输入密码。它将是您在FTP/凭据屏幕上提供的密码。 测试你的网站。它应该可以在https://Azure 适用于Windows Node JS的应用程序服务 本地Git上载到Azure应用程序服务 在Azure门户>部署>部署中心中打开应用程序服务-如果您已经设置了部署选项,则必须按断开连接。 选择本地Git>应用程序服务构建服务>摘要>完成 选择左上角的FTP/凭据>选择用户凭据-设置密码并保存凭据 回到概述,用您的git用户名复制git部署URL。它应该是以下格式:https://@.scm.azurewebsites.net:443/.git 从计算机上的本地项目文件夹运行npm运行生成 在./build中,在构建完成后运行git init以初始化git repo 运行git remote add azure https://@.scm.azurewebsites.net:443/.git将azure部署添加为推送到的选项 运行git add*和git commit-m${date}和git push azure master:master 系统将提示您输入密码。它将是您在FTP/凭据屏幕上提供的密码。
测试你的网站。它应该在https://上可用,因为Linux Azure Web Apps使用pm2为节点应用提供服务。您需要在设置>常规设置>启动命令中配置Azure Linux Web Apps服务以运行启动命令为您的React应用提供服务:

请记住更改生成路径的路径index.html文件的路径

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

pm2 serve /home/site/wwwroot/ --no-daemon --spa
使用-spa选项pm2将自动将所有查询重定向到index.html,然后react router将发挥其神奇作用

您可以在pm2文档中找到更多信息:


我最近处理过同样的问题:

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

请记住更改生成路径的路径index.html文件的路径

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

pm2 serve /home/site/wwwroot/ --no-daemon --spa
使用-spa选项pm2将自动将所有查询重定向到index.html,然后react router将发挥其神奇作用

您可以在pm2文档中找到更多信息:


我最近也遇到了同样的问题:

欢迎来到SO!如果这对你有效,你应该将其标记为已接受的答案。欢迎使用SO!如果这对你有用的话,你应该把它标记为被接受的答案。谢谢,我花了好几个小时试图让它起作用。你的帖子让我走上了正确的道路。谢谢,我花了好几个小时试图让它发挥作用。你的帖子让我走上了正确的道路。
pm2 serve /home/site/wwwroot/ --no-daemon --spa