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

Clerk authMiddleware配置publicRoutes未登录时报错求助

问题解决方法

首先翻译错误信息:

Clerk错误:publicRoutes数组中包含的路由("/")已被matcher匹配,这会导致循环。请将其从publicRoutes中移除,或调整你的matcher配置。

问题根源在于你的matcher配置重复包含了"/"路由,和publicRoutes的设置产生冲突。原matcher里的第一个规则'/((?!.+\.[\w]+$|_next).*)'已经能匹配包括"/"在内的所有非静态资源、非_next路径的路由,无需再单独添加"/"到matcher数组中。

修改后的middleware.ts代码如下:

import { authMiddleware } from "@clerk/nextjs";
export default authMiddleware({
  // "/" 对所有用户开放访问
  publicRoutes: ["/"]
});
 
export const config = {
      matcher: ['/((?!.+\.[\w]+$|_next).*)', '/(api|trpc)(.*)'],
};

这样修改后,既保留了首页无需登录即可访问的设置,又避免了路由匹配冲突导致的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 00:43:11