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

使用vite-typescript-ssr-react模板添加路由后出现路由匹配错误求助

解决Vite-TS-SSR-React模板中React Router路由匹配错误的问题

1. 根路径无匹配路由的问题

你的路由配置仅定义了/auth和/dashboard,未处理根路径/,因此会触发No routes matched location "/"错误。解决方式是添加根路径路由,可选择重定向到已有页面或创建首页组件:

修改app.tsx:

import React from "react";
import { Routes, Route, Navigate } from "react-router-dom";

import AuthPage from "./pages/AuthPage.tsx";
import DashboardPage from "./pages/DashboardPage.tsx";
import { ContextWrapper } from "./context/Context.tsx";

export const App = () => {
  return (
    <ContextWrapper>
      <Routes>
        {/* 根路径重定向到/auth */}
        <Route path="/" element={<Navigate to="/auth" replace />} />
        <Route path="/auth" element={<AuthPage />} />
        <Route path="/dashboard" element={<DashboardPage />} />
        {/* 可选:添加404页面处理未匹配的路由 */}
        <Route path="*" element={<div>404 页面未找到</div>} />
      </Routes>
    </ContextWrapper>
  );
};

export default App;

2. Tailwind路径与Favicon的路由匹配问题

/tailwindcss/*、/favicon.ico属于静态资源,在SSR模板中需要让服务端优先处理静态资源请求,再将剩余请求交给React Router。

找到服务端入口文件(通常为server.ts或entry-server.tsx),添加静态资源处理逻辑:

import express from 'express';
const app = express();

// 处理public目录下的静态资源(比如favicon.ico)
app.use(express.static('public'));

// 处理Tailwind相关的静态资源请求
app.use('/tailwindcss', express.static('node_modules/tailwindcss/dist'));

// 最后处理SSR路由逻辑
app.get('*', (req, res) => {
  // 这里是你的SSR渲染代码,比如renderToString等逻辑
});

确保favicon.ico放在项目根目录的public文件夹下,服务端会直接返回该文件,不会进入React Router的匹配流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:18:35