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

React Router 访问/info报Cannot GET /info错误的解决求助

解决React Router /info路由与express-actuator端点冲突的404问题

核心问题原因

express-actuator默认会注册/info、/health等后端端点,当你通过React Router配置/info前端路由时,访问该路径的请求会被Express优先识别为后端API请求,若actuator未正确启用/info端点或路径匹配冲突,就会抛出Cannot GET /info的404错误。

解决方案

方案一:修改express-actuator的端点前缀(推荐)

给actuator的所有端点添加统一前缀,避免与前端路由路径冲突:

在server.dev.js中修改actuator的初始化代码:

const actuator = require('express-actuator');
// 添加prefix参数,将actuator端点前缀设为/api/actuator
app.use(actuator({
  prefix: '/api/actuator'
}));

修改后,actuator的info端点会变为/api/actuator/info,不再占用前端的/info路径,此时访问http://localhost:3000/info会直接由React Router处理。

方案二:配置Express的Catch-All路由转发前端请求

如果不想修改actuator前缀,可调整Express中间件顺序,确保未匹配到后端API的请求都转发到前端的index.html,由React Router处理:

在server.dev.js中按以下顺序配置中间件:

const path = require('path');
const express = require('express');
const actuator = require('express-actuator');
const app = express();

// 1. 先配置actuator处理后端端点
app.use(actuator());

// 2. 配置静态文件服务(根据你的实际静态文件目录调整)
app.use(express.static(path.join(__dirname, 'public')));

// 3. 最后添加Catch-All路由,所有未匹配的GET请求返回index.html
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'public', 'index.html'));
});

这样,当访问/info时,若Express未匹配到对应的后端API,就会返回前端入口文件,React Router就能渲染对应的构建信息组件。

额外检查项

  1. 确认React Router已正确配置/info路由:
    在App.tsx中:
import { Routes, Route } from 'react-router-dom';
import InfoComponent from './components/InfoComponent'; // 替换为你的组件路径

function App() {
  return (
    <Routes>
      {/* 其他路由配置 */}
      <Route path="/info" element={<InfoComponent />} />
    </Routes>
  );
}

export default App;
  1. 检查webpack-dev-server代理配置:
    若webpack.dev.config.js中配置了代理,确保/info路径未被代理到后端:
module.exports = {
  // 其他配置
  devServer: {
    proxy: {
      // 仅代理/api开头的请求,避免影响前端路由
      '/api': {
        target: 'http://localhost:3001',
        changeOrigin: true
      }
    }
  }
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:05:21