tl;博士:我需要mypage.com/users/123
表现得像mypage.com/users?user_id=123
我正在使用 Next.js 10。我希望有类似mypage.com/users/123
和的路线mypage.com/users/445
。我的所有搜索都将我带到动态路由,这建议在pages
文件夹下使用此结构:
users/
[user_id].js
这不适用于我的情况,因为随后会在服务器中为每个用户生成一个新页面。我只想要一个静态生成的页面,在 下users/
,它在客户端获取user_id
作为参数。
使用查询参数,这很简单。我可以使用这个文件夹结构
users/
index.js
然后,当有人访问时mypage.com/users?user_id=123
,会提供相同的页面,然后客户端 js 代码可以访问user_id
.
可能的解决方案
我目前的解决方案(我觉得太复杂了,但可能对某人有帮助)是添加一个rewrite
on next.config.js
,如下所示:
module.exports = {
rewrites() {
return [{ source: '/users/:user_id', destination: '/users?user_id=:user_id' }];
}
}