首页 > 解决方案 > 使用 PHP API 和 APache 服务器在 Digitalocean 上部署 ReactJs 应用程序

问题描述

几天来,我一直在尝试在 Digital Ocean 上部署我的第一个 react js 应用程序,但没有成功。它是一个创建反应应用程序,它连接到运行 Apache 服务器的 PHP API

我已经使用 npm run build 命令成功构建了我的应用程序。当我尝试从浏览器访问构建文件夹时,我只得到一个空白页。我通过简单地访问我的浏览器的路由来访问 domain_name.com/myapp/build 来做到这一点(仅用于测试目的)。

当我运行 npm start 时,我可以在 domain.com:3000 以开发模式访问应用程序的主页。我的 package.json 的脚本部分如下所示

"scripts": {
  "start": "react-scripts start",
  "build": "react-scripts build",
  "test": "react-scripts test",
  "eject": "react-scripts eject",
  "add-locale": "lingui add-locale",
  "flow": "flow",
  "start:prod": 'node dist/app.js'
},

我的服务器在https://domain_name.com上运行,但是当我执行 https://domain_name.com:3000时,我无法访问我的应用程序的开发版本,但我可以使用 domain_name.com:3000 访问开发版本.

任何有关这些问题的帮助将不胜感激。

标签: node.jsreactjsnpmdigital-oceannpm-scripts

解决方案


当您运行 npm start 时,您会启动运行在 3000 端口上的 webpack-dev-server 并托管您的源代码。

当你构建你的 React 应用程序时,你只需要准备一个 js 文件,你应该将它与你的 API 文件一起托管在你的 Apache 服务器上。

您需要将该 js 文件包含在具有结构的 index.html 和<script src="path/to/js">该文件中。

如果您还有任何问题,请告诉我。

更新:

要解决路由问题,请阅读官方部署手册并搜索.htaccess

PS:也许你觉得这个https://gist.github.com/ywwwtseng/63c36ccb58a25a09f7096bbb602ac1de很有用。


推荐阅读