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

Next.js 13.4 App Router中Middleware未执行问题求助

可能的原因及解决办法
  • 未导出核心的middleware处理函数
    你只提供了config配置,但Middleware要生效必须导出一个处理函数。比如:

    import { NextRequest } from 'next/server';
    
    export function middleware(request: NextRequest) {
      // 可以先加日志验证是否执行
      console.log('Middleware已触发:', request.url);
      // 这里写你的实际处理逻辑
    }
    
    export const config = {
      matcher: '/api/:function*',
    };
    

    没有这个核心函数,哪怕配置写得再对也不会触发执行。

  • 匹配器路径与实际请求不匹配
    你的匹配器/api/:function*只会匹配/api/后带任意内容的路径(比如/api/get-list、/api/user/123),但不会匹配/api本身。如果你的请求是直接访问/api,需要调整匹配器:

    export const config = {
      matcher: ['/api', '/api/:function*'],
    };
    
  • 开发服务器未重启
    修改Middleware或其配置后,Next.js的热重载可能不生效,必须手动停止并重启开发服务器,确保新配置被正确加载。

  • Next.js版本过低
    App Router对Middleware的稳定支持从Next.js 13.4版本开始,如果你的版本低于这个,大概率存在兼容性问题。可以运行npm list next查看版本,必要时升级到最新稳定版。

  • 文件位置错误
    确认middleware.ts确实放在项目根目录的app/文件夹下(无src/结构的话,路径就是./app/middleware.ts),别放到pages/或者其他子目录里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 04:42:06