请教关于服务器运行React的问题

#1

我们线上有一套PHP开发的系统,由它提供数据接口,React项目负责请求。

我想要把React项目放到服务器运行。

我想到两种方案但不知是否可行:

1、搭建另一个Node服务器运行React开放80端口,PHP允许其跨域请求
2、在PHP服务器运行React的index.html

想不通的是:
React项目是用的React-Router,在本地使用webpack-dev-server的时候可以运行locaohost:8081或locaohost:8081/home以及其他子页面(子路由)
如果放在服务器上执行的是服务器路由访问不到locaohost:8081/home以及其他子页面(子路由)

请问这怎么解决?还是我已开始的想法就是错误的

#2

Webpack 打包输出的知识静态文件(HTML,JS,CSS)

然后你需要将这些静态文件Host在服务器(Express/Nginx)上

那么它就和你在webpack-dev-server暴露出来的端口无关了,比如:webpack-dev-server

webpack-dev-server --hot

 devServer: {
    contentBase: path.join(__dirname, "dist"),
    compress: true,
    host: "0.0.0.0",
    port: 9000,
    hot: true
  }

指向的是9000端口,而nginx默认是80端口,完全就不是一回事。又比如express是可以自定义暴露

//express
app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})

所以你应该首先清楚Node服务器暴露的端口是否是8081(BTW,你说的Node服务是跑的啥?)

#3

Node服务少打了一个字应该是Node服务器。

我晓得express可以自定义端口,也确定是暴露的8081。

我不懂的是,locaohost:8081/home自路由访问不到,和端口没啥关系吧?如果端口不对首页都进不去

#4

嗯,好的,你必须把你的代码贴出来,别人才能帮你分析~