createNextMiddleware
createNextMiddleware() 方法的 API 参考。
概览
createNextMiddleware 是一个用于 Next.js 的实用函数,用于创建可在 Next.js 中使用的中间件函数。
它允许你在 Next.js 应用中为每个 locale 配置不同的路由。
例如,法语用户会被定向到 /fr/landing,而英语用户会被定向到 /en/landing。
有关如何使用此中间件的更多信息,请参阅 i18n 路由指南。
参考资料
Props
Prop
Type
说明
| Prop | 描述 |
|---|---|
pathConfig | 指定应用本地化路径的嵌套对象。 |
localeRouting | 用于启用或禁用 i18n 路由的开关。 |
prefixDefaultLocale | 用于启用或禁用在 defaultLocale 下移除 locale 前缀的开关(例如:/en/about -> /about)。 |
示例
基本用法
只需在你的 middleware 文件中添加并调用此函数,以及路径匹配器,即可启用 locale 路由。
import { createNextMiddleware } from 'gt-next/middleware'
export default createNextMiddleware();
export const config = {
matcher: [
/*
* 匹配除以下前缀开头的路径之外的所有请求路径:
* - api(API 路由)
* - _next(内部文件)
* - 静态文件
*/
"/((?!api|static|.*\\..*|_next).*)",
],
}本地化路径
你可以在 middleware 文件中的 pathConfig 选项里指定本地化路径。
export default createNextMiddleware({
pathConfig: {
"/about": "/about",
"/airplanes": {
"zh": "/飞机",
}
},
});有关其工作方式的详细说明,请参见i18n 路由指南。
移除默认 locale 前缀
将 prefixDefaultLocale 选项设置为 false,即可移除默认 locale 的前缀。
export default createNextMiddleware({
prefixDefaultLocale: true,
});当该值为 true 时,所有路径都必须加上 locale 前缀。
如果将其设为 false(默认),则仅会从路径中移除默认的 locale。
注意事项
createNextMiddleware是一个用于在 Next.js 中创建中间件的实用函数。
下一步
本指南如何?