node.js - 使用 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 访问开发版本.
任何有关这些问题的帮助将不胜感激。
解决方案
当您运行 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很有用。
推荐阅读
- ios - 我在 Swift 10.2 上运行我的自编码应用程序时遇到问题
- ruby-on-rails - 旧版 Rails 应用程序尝试在 docker 容器中预编译资产时失败
- python - 如何切换 Flask-SQLAlchemy 的 SQLALCHEMY_DATABASE_URI b/w 两个数据库?
- python-3.x - 如何使用熊猫数据框中的纬度和经度计算距离?
- php - 编译错误:无法声明类,因为该名称已在使用中
- javascript - 将数组转换为字符串,用分隔符分隔字符串 - JavaScript
- python - 计算草中多边形特征的函数?
- javascript - 一次打开一个标题
- c - 图解说明
- r - 从历史中获取最后一个命令作为R中的文本字符串