Nextjs 动态设置所有路由路径

时间:2021-04-14 14:14:13

标签: reactjs next.js

在工作中,

我们有一个文件夹路径,如:

pages/user/login.js

我们想把它移到 http://example.com/login

但是链接标签和文件夹结构应该保持不变。 我们应该还在使用

<Link href="/user/login">

但它应该显示为 http://example.com/login。 这应该无需任何文件夹结构更改即可完成! 我们无法替换 href 并且无法将 user.js 移动到根目录。

我的同事是 nextjs 的新手,他们拒绝在没有此功能的情况下切换。 (CTRL+SHIFT+H(全部替换)太耗时,所以我们花了 8x3 小时来解决这个问题)

我们尝试了 next.config 重定向重写,但都无济于事。

   module.exports = {
      async rewrites() {
        return [
          {
            source: "/login",
            destination: "/user/login",
          },
          {
            source: "/register",
            destination: "/user/register",
          },
        ];
      },
    };
    // not working: <Link href="login"/>

1 个答案:

答案 0 :(得分:0)

rewrites 仅用于服务器,不影响客户端路由。

要为您的客户端路由提供相同的逻辑,您可以将 as 属性添加到您的 Link 中,它是将显示在地址栏中的路径的装饰器。< /p>

<Link href="/user/login" as="/login" />