Heroku部署MERN项目刷新非首页返回JSON而非UI问题求助
问题原因
- 核心是前端路由路径和后端API路由路径重名冲突,Express路由按从上到下的顺序匹配,你当前代码的API路由注册顺序早于前端静态资源与通配返回index.html的逻辑,刷新非首页时,请求路径先匹配到同名API路由,直接返回JSON数据,不会走到后续返回前端页面的逻辑。
- 你当前的后端API没有统一前缀,只要前端路由路径和任意API接口路径一致,就会触发这个问题。
修复方案
- 给所有后端API路由添加统一前缀,避免和前端路由冲突,修改App.js中的路由注册代码:
// 原代码 // app.use(userRoutes); // app.use(projectRoutes); // 修改为 app.use('/api/user', userRoutes); app.use('/api/project', projectRoutes);
修改后所有后端接口路径都以/api开头,永远不会和前端页面路径重合。
2. 同步修改前端所有调用后端接口的请求地址,统一加上/api前缀,比如原来调用/user/info现在改成/api/user/info。
内容的提问来源于stack exchange,提问作者Sandeep Rawat
相关产品推荐
相关产品推荐

