Next.js 向Nextjs动态路由添加前缀

Next.js 向Nextjs动态路由添加前缀,next.js,Next.js,我定义了很多路由,其中一个路由专门用于用户配置文件 每个用户都有一个可从访问的公共配置文件 我尝试过创建文件pages/@[username].js,但似乎不起作用 有没有一种方法可以在不使用用户名传递@sign的情况下实现这种行为,因为这会使index.js处理主页变得非常复杂,我希望将代码分开 提前感谢。Next.js还不支持此功能 你应该注意这一点。Next.js还不支持这一点 您应该注意这一点。您现在可以在next.config.js module.exports={ 异步重写(){ 返

我定义了很多路由,其中一个路由专门用于用户配置文件

每个用户都有一个可从访问的公共配置文件

我尝试过创建文件
pages/@[username].js
,但似乎不起作用

有没有一种方法可以在不使用用户名传递@sign的情况下实现这种行为,因为这会使index.js处理主页变得非常复杂,我希望将代码分开


提前感谢。

Next.js还不支持此功能


你应该注意这一点。

Next.js还不支持这一点


您应该注意这一点。

您现在可以在
next.config.js

module.exports={
异步重写(){
返回[
{
来源:'/@:用户名',
目标:'/users/:username'
}
]
}
}
这将使任何指向
/@username
的链接转到
/users/[username]
文件,即使地址栏将显示
/@username

然后,在您的
/pages/[username].tsx
文件中:

import { useRouter } from 'next/router'

export default function UserPage() {
  const { query = {} } = useRouter()

  return <div>User name is {query.username || 'missing'}</div>
}
从“下一个/路由器”导入{useRouter}
导出默认函数UserPage(){
const{query={}}=useRouter()
返回的用户名为{query.username | |'missing'}
}

您现在可以在
next.config.js

module.exports={
异步重写(){
返回[
{
来源:'/@:用户名',
目标:'/users/:username'
}
]
}
}
这将使任何指向
/@username
的链接转到
/users/[username]
文件,即使地址栏将显示
/@username

然后,在您的
/pages/[username].tsx
文件中:

import { useRouter } from 'next/router'

export default function UserPage() {
  const { query = {} } = useRouter()

  return <div>User name is {query.username || 'missing'}</div>
}
从“下一个/路由器”导入{useRouter}
导出默认函数UserPage(){
const{query={}}=useRouter()
返回的用户名为{query.username | |'missing'}
}

正常工作```const router=useRouter();const{username}=router.query````我在我的答案中添加了一个带有
useRouter
的示例。好的,可以了```const router=useRouter();const{username}=router.query````我在回答中添加了一个带有
useRouter
的示例。