next.js - 为 Nextjs 动态路由添加前缀
问题描述
我定义了很多路线,其中一条路线专用于用户配置文件。
每个用户都有一个可从 访问的公共配置文件。
我试过创建文件pages/@[username].js
,但它似乎不起作用。
有没有办法在不使用用户名传递 @ 符号的情况下实现这种行为,因为这会使 index.js 处理主页变得非常复杂,我希望将该代码分开。
提前致谢。
解决方案
你现在可以这样做next.config.js
module.exports = {
async rewrites() {
return [
{
source: '/@:username',
destination: '/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>
}
推荐阅读
- c# - 无法执行 JsonConvert.DeserializeObject
- javascript - 获取上传的 CSV 文件内容
- excel - 具有合并单元格的 VBA 格式化表
- java - 如何在库中以编程方式打开 Flash(条形码阅读器 - Google Mobile Vision)
- c++ - boost::file_mapping 对象的创建成本?
- ios - 为什么 App Preview 上传到应用商店后质量很差?
- jmeter - 我的 jmx 文件中有很多 HTTP 请求,我只想一次点击一个 HTTP 请求,而不管所有线程都没有设置
- windows - 如何使用特定用户的命令行在 Windows 中查看文件夹权限?
- blueprism - 蓝棱镜中是否存在网页异常处理
- python - 使用 Gtk 和 pycairo 在图像上绘制形状