【问题标题】:Deploy a ReactJs Application on Digitalocean with PHP API and APache server使用 PHP API 和 APache 服务器在 Digitalocean 上部署 ReactJs 应用程序
【发布时间】:2019-09-29 15:19:29
【问题描述】:

几天来,我一直在尝试在 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 访问开发版本。

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

【问题讨论】:

  • 首先,我完全确定您没有在使用 Apache 的服务器上的 3000 端口上运行任何东西,或者至少您不能公开它。所以你所有的文件都应该在 80 端口上可用,这意味着你应该把它和你托管的项目文件放在一起

标签: node.js reactjs npm digital-ocean npm-scripts


【解决方案1】:

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

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

您需要在 index.html 中包含该 js 文件,并在该文件中包含 <script src="path/to/js">

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

更新:

解决路由问题阅读the official deployment manual并搜索.htaccess

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

【讨论】:

  • 感谢@pavlo,我不知道如何编辑 html 文件。我在哪里可以找到您正在谈论的js文件。因为,我的项目文件夹中没有。当我访问构建文件夹时,我看到两个 js 文件 precache-manifest.2267fe1d7db406484d550aef922b7138.js、service-worker.js 那么哪个是正确的??
  • @NgesBrian 你可以在facebook.github.io/create-react-app/docs/deployment找到更多信息
  • @NgesBrian 看起来您需要将它们与static 文件夹放在一起
  • 它实际上打开了,但没有呈现 js。事实上,只是显示背景图片
  • 当我将该特定路线更改为另一条路线时,我只是找到一个空的未找到页面。事实上,这里什么都没有
猜你喜欢
  • 2015-12-12
  • 2017-10-21
  • 1970-01-01
  • 2015-08-09
  • 2018-06-07
  • 2019-06-14
  • 1970-01-01
  • 2016-04-10
相关资源
最近更新 更多