【发布时间】:2021-04-15 00:55:52
【问题描述】:
在工作中,
我们有一个像这样的文件夹路径:
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 redirects 和 rewrites 无济于事。
module.exports = {
async rewrites() {
return [
{
source: "/login",
destination: "/user/login",
},
{
source: "/register",
destination: "/user/register",
},
];
},
};
// not working: <Link href="login"/>
【问题讨论】:
-
你用
npm run start运行next.js吗?还是只是静态导出 html? -
我们由 yarn dev 运行
-
您可以在 _app.js 中使用自定义组件,只需使用
router.replace()参见 codesandbox.io/s/snowy-morning-w0s3h?file=/pages/_app.js