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

React项目npm run build无about.html?部署Nginx后路由404咨询

问题解答

dist文件夹无about.html是正常情况

你用react-router-dom的createBrowserRouter配置的是前端单页应用(SPA)路由,这种模式下,Vite打包后只会生成一个index.html,所有路由逻辑都由前端JS代码处理,不会为每个路由单独生成对应的.html文件。本地开发时Vite的dev服务器会自动处理路由转发,所以访问/about等路径正常。

生产环境Nginx 404的原因及解决方法

Nginx默认会根据请求路径查找对应的静态文件,比如访问www.example.com/about时,它会去dist目录下找about.html,找不到就返回404。要解决这个问题,需要修改Nginx配置,让所有路由请求都转发到index.html,交给前端路由处理:

修改你的Nginx站点配置,添加try_files指令:

server {
    listen 80;
    server_name www.example.com;
    # 替换成你的dist文件夹实际路径
    root /usr/share/nginx/html; 
    index index.html;

    location / {
        # 优先找静态文件,找不到就转发到index.html
        try_files $uri $uri/ /index.html;
    }

    # 可选:给静态资源设置缓存,提升性能
    location ~* \.(js|css|svg|png|ico)$ {
        expires 365d;
        add_header Cache-Control "public, no-transform";
    }
}

修改后重启Nginx服务,访问/mainpage、/about等路径就会正常加载前端路由对应的页面了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 14:12:07