在工作中,
我们有一个文件夹路径,如:
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"/>
答案 0 :(得分:0)
rewrites
仅用于服务器,不影响客户端路由。
要为您的客户端路由提供相同的逻辑,您可以将 as
属性添加到您的 Link
中,它是将显示在地址栏中的路径的装饰器。< /p>
<Link href="/user/login" as="/login" />