You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React-Router V6部署Nginx Docker后客户端路由404问题求助

解决Docker部署React应用后React-Router V6路由404问题

问题本质是:React单页应用(SPA)的路由由客户端React-Router接管,但直接访问/about这类路径时,Nginx会默认去服务器文件系统中查找对应文件,找不到就返回404。而本地npm start用的React开发服务器会自动将所有路由请求转发到index.html,所以不会出现这个问题。

你的自定义Nginx配置已经包含了正确的路由转发规则(try_files $uri $uri/ /index.html;),但Dockerfile中复制该配置文件的命令被注释掉了,导致Nginx使用默认配置,没有启用这条关键规则。

解决步骤:

  1. 启用Dockerfile中的Nginx配置复制命令
    取消Dockerfile中这一行的注释:

    COPY ./.nginx/nginx.conf /etc/nginx/nginx.conf
    

    确保本地的nginx.conf确实存放在./.nginx目录下,若路径不同,对应修改COPY命令的源路径。

  2. 重新构建Docker镜像
    执行构建命令:

    docker build -t your-react-app .
    
  3. 重新启动容器
    按需求调整端口映射后启动容器:

    docker run -d -p 80:80 your-react-app
    

额外验证点:

  • 确认nginx.conf里的root路径/usr/share/nginx/html和你复制构建产物的路径一致,你的配置这部分是正确的。
  • 确保try_files $uri $uri/ /index.html;在location /块内,这条规则会让Nginx优先尝试访问请求的文件/目录,找不到则返回index.html,交给React-Router处理客户端路由。

内容的提问来源于stack exchange,提问作者ceylonroad ceylonroad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:04:56