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

React项目部署Heroku后访问非首页路由提示Cannot GET错误如何解决

问题原因

你使用了React的BrowserRouter客户端路由方案,所有路由跳转逻辑都在前端侧实现。当前你的Express服务仅配置了静态资源托管规则,当用户直接访问/alunos等非根路径、或是在子路径页面刷新时,请求会直接发送到Express服务端,而服务端没有对应路径的处理逻辑,因此返回Cannot GET错误。

解决方案

修改server.js配置,增加通配符路由规则,所有未匹配到静态资源的请求统一返回前端构建产物的index.html,将路由控制权交还给前端:

const express = require('express')
const path = require('path')
const app = express()
const PORT = process.env.PORT || 3102

app.use(express.static('build'))
// 新增通配符路由,必须放在静态资源托管规则之后
app.get('/*', (req, res) => {
  res.sendFile(path.join(__dirname, 'build', 'index.html'))
})

app.listen(PORT, () => console.log('Servidor Front em execução!'))

修改后重新部署到Heroku即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:15:07