create-react-app 打包的应用和 Express 项目怎样部署在同一台服务器上?

我用 create-react-app 打包出来了 build 目录,已经放在服务器上(腾讯云,centos),跑在默认的5000端口;同时还有一个 Express 的项目,为前面的 React 应用提供接口,跑在4000上。在本地跑的时候完全没问题,在 create-react-app 的 package.json 里设置 proxy: localhost:4000 就万事大吉了,然而服务器上怎么搞呢?主要是 nginx 怎么配置?

现在的 nginx 是这样的,没改过。在浏览器里访问服务器 ip,文档和静态资源都没问题,就是 ajax 返回的都是 index.html 的内容。

server {
        listen       80;
        server_name  localhost;
        location / {
            proxy_pass http://127.0.0.1:5000;
        }
 }
 

为这个急了一天也没找到有效的解决方案,感谢大家了。

阅读 3.8k
2 个回答

比如,你的ajax接口的地址都为 /api/......
此时,需要nginx配置:

server {
    listen 5000;
    location / {
        root /home/xxx; #前端部署地址
        index index.html;
        try_files $uri /index.html;
    }
    location /api {
        proxy_pass http://localhost:4000/api;
     }
}

请问楼主 前端代码和后面代码是分别npm run build 吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题