2

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.

可能的解决方案

我目前的解决方案(我觉得太复杂了,但可能对某人有帮助)是添加一个rewriteon next.config.js,如下所示:

module.exports = {
  rewrites() {
    return [{ source: '/users/:user_id', destination: '/users?user_id=:user_id' }];
  }
}
4

0 回答 0