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

Remix中@username形式路由实现问题:访问/@test返回404

在Remix中实现@username形式路由的解决方案

你的问题出在路由文件命名不符合Remix的动态路由规则——Remix会把你当前的@username识别为静态路由段,而非动态参数,所以访问/@test时找不到匹配的路由,返回404。

以下是正确的实现步骤:

1. 修正路由文件命名

将你的路由文件从:

app/routes/@username/index.tsx

修改为:

app/routes/@$username/index.tsx

如果不需要嵌套子路由,也可以简化为:

app/routes/@$username.tsx

这样Remix会把@识别为路径的静态前缀,$username则作为动态参数匹配@之后的内容(比如test)。

2. 获取并使用动态参数

组件中获取参数的代码无需修改,依然可以用useParams()拿到用户名:

import { useParams } from "@remix-run/react";

export default function UserProfile() {
  const { username } = useParams<{ username: string }>();
  return <div>用户:{username}</div>;
}

3. 排查路由冲突

如果仍返回404,检查是否存在优先级更高的静态路由(比如app/routes/@test.tsx)。Remix会优先匹配静态路由,确保这类路由不存在即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:57:16