我在/myproject/pages/middleware.js
中有middleware.js
文件:
export function middleware(request) {
console.log(1);
return NextResponse.redirect(new URL('/', request.url));
}
// See "Matching Paths" below to learn more
export const config = {
matcher: ['/test'],
};
现在我所期望的是当我进入/test
页面时,它应该会将我重定向到/
。然而,什么也没有发生,我看到了我的标准404页面。
知道为什么吗?
下一版本:12.2.2
2条答案
按热度按时间byqmnocz1#
NextJS的最新版本要求用户在根文件夹上有一个中间件。
请尝试
{root}/middleware.js
,而不是{root}/pages/_middleware.js
rhfm7lfc2#
对于下一个13.0.2 / 13.0.1(如果您正在使用appDir):真(实验)
如果您想使用中间件:
1.把middleware.ts放入根项目中:(与“应用程序”文件夹的层次结构相同,不在应用程序文件夹内...)
1.确保tsconfig包含:[...,“中间件.ts”]
1.创建空的“页面”文件夹。(基于issue)
1.将命中每个请求: