Middleware
createNextMiddleware()
createNextMiddleware() 方法的 API 参考。
概述
createNextMiddleware()
是一个用于为 Next.js 创建中间件函数的实用工具函数。
它允许你在 Next.js 应用中为每种语言添加不同的路由。
例如,法语用户会被重定向到 /fr/landing
,而英语用户会被重定向到 /en/landing
。
有关如何使用此中间件的更多信息,请参阅 i18n 路由指南。
参考
属性
Prop | Type | Default |
---|---|---|
prefixDefaultLocale? | string | number | - |
localeRouting? | string |
|
pathConfig? | any | {} |
描述
属性 | 描述 |
---|---|
pathConfig | 一个用于指定应用本地化路径的嵌套对象。 |
localeRouting | 用于启用或禁用 i18n 路由的标志。 |
prefixDefaultLocale | 用于启用或禁用从默认语言中移除语言前缀的标志。(例如 /en/about -> /about ) |
示例
基本用法
只需在你的 middleware 文件中调用此函数并添加路径匹配器,即可启用多语言路由。
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 路由指南 以获取该功能的详细说明。
移除默认语言前缀
你可以通过将 prefixDefaultLocale
选项设置为 false
来移除默认语言前缀。
export default createNextMiddleware({
prefixDefaultLocale: true,
});
当此选项为 true 时,每个路径都必须带有语言前缀。
如果你将其设置为 false
(默认值),则只有默认语言的前缀会从路径中移除。
注意事项
createNextMiddleware()
函数是一个用于为 Next.js 创建中间件函数的实用工具函数。
后续步骤
- 查看说明,了解如何为你的 Next.js 应用添加 i18n 路由。
这份指南怎么样?