在包含 Auth.js 的所有路由的文件内使用 slug

问题描述 投票:0回答:1

因此,除了 next 14 附带的应用程序路由系统之外,我还使用 Auth.js 进行身份验证,并且在 paths.ts 文件中定义了所有受保护和不受保护的路由。

导出常量公共路由= [ “/”, “/auth/新验证”, “/上传”, “/产品/:slug”, ];

/** 通过身份验证可访问的路由数组*/

导出常量 authRoutes = [ “/验证/登录”, “/验证/注册”, “/验证/错误”, “/验证/重置”, “/auth/新密码”, ];

/** 用于API认证的API认证路由前缀*/ 导出 const apiAuthPrefix = "/api/auth";

/** 登录后默认重定向路径*/

导出常量 DEFAULT_LOGIN_REDIRECT = "/settings";

在公共路由中,我想使用像“/products/[slug here]”这样的slug。有什么办法可以做到这一点吗? 使用 [slug] 或 :slug 或与下一个文件命名约定兼容的东西不起作用。

next.js
1个回答
0
投票

我没有尝试在routes.ts文件中定义slug,而是更改了middleware.ts文件中的匹配器。来自捕获所有路由的匹配器,例如

匹配器: ["/((?!.+\.[\w]+$|_next).)", "/", "/(api|trpc)(.)"],

我在匹配器中定义了我的路线,如下所示:

导出常量配置= { 匹配器:[ “/”, “/auth/新验证”, “/上传”, “/验证/登录”, “/验证/注册”, “/验证/错误”, “/验证/重置”, “/auth/新密码”, “/api/auth”, ], };

© www.soinside.com 2019 - 2024. All rights reserved.