You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js项目中middleware.ts无法触发问题排查求助

Next.js Middleware 未触发的排查与解决

针对你遇到的Middleware未执行问题,结合你的代码和项目结构,给出以下排查方向:

1. 检查Middleware文件位置

Next.js对middleware.ts的位置有严格要求:必须放在项目根目录或者src目录的根层级(与pages文件夹同级),不能嵌套在pages或其他子文件夹里。从你的项目结构截图来看,middleware.ts目前在src/pages下,这是错误的位置,框架无法识别并加载它。

解决方法:将middleware.ts移动到src目录根(和pages文件夹平级),如果没有使用src目录则直接放在项目根目录。

2. 显式配置路由匹配规则

虽然默认情况下Middleware会匹配所有路由,但显式配置matcher可以避免潜在的路由规则冲突,确保Middleware触发。修改你的middleware.ts,添加匹配配置:

import { NextRequest, NextResponse } from 'next/server'

export function middleware(request: NextRequest) {
  console.log("it ran")
  return NextResponse.json({"hello":"middleware"})
}

// 匹配所有路由
export const config = {
  matcher: '/:path*',
}

3. 清除开发服务器缓存

Next.js开发服务器有时会缓存旧的配置,导致新添加的Middleware不生效。尝试以下操作:

  • 停止开发服务器
  • 删除项目根目录下的.next文件夹
  • 重新执行npm run dev启动服务器
  • 浏览器强制刷新页面(Ctrl+Shift+R)

4. 确认Next.js版本兼容性

Middleware功能从Next.js 12版本开始支持,如果你的版本过低,将无法使用该功能。检查当前版本:

npm list next

若版本低于12,升级到最新稳定版:

npm install next@latest

内容的提问来源于stack exchange,提问作者Ahmed Wagdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:06:18