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

React Router通过URL导航失效:Cannot GET /'page'问题求助

React Router 直接URL导航出现Cannot GET /page 问题解决方法

直接通过URL访问React Router路由出现404,但内部导航正常,核心原因是单页应用的前端路由依赖浏览器端处理,当直接请求服务器时,服务器无法识别这些前端路由路径,返回404。

你之前添加的通配路由逻辑方向是对的,但路径写错了——React打包后的index.html在build目录下,不是public目录。另外要注意中间件的顺序:静态资源处理要放在通配路由之前,确保js、css等静态文件能正常加载。

修正后的server.js代码:

const express = require('express');
const app = express();
const port = process.env.PORT || 3001;
const path = require('path');

// 先处理build目录下的静态资源
app.use(express.static('build'));

// 所有未匹配到静态资源的请求,都返回build下的index.html,交给React Router处理
app.get('/*', function(req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'), function(err) {
    if (err) {
      res.status(500).send(err)
    }
  })
})

app.listen(port, () => {
   console.log('Server is up on port: '  + port);
})

修改要点:

  • 将sendFile的路径从./public/index.html改为build/index.html,对应打包后的文件位置
  • 确保express.static('build')在通配路由之前执行,优先处理静态资源请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:10:30