Middleware

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 路由。

middleware.js
import { createNextMiddleware } from 'gt-next/middleware'

export default createNextMiddleware();

export const config = {
  matcher: [
    /*
      * 匹配除以下前缀开头的路径之外的所有请求路径:
      * - api(API 路由)
      * - _next(内部文件)
      * - 静态文件
      */
    "/((?!api|static|.*\\..*|_next).*)",
  ],
}

本地化路径

你可以在 middleware 文件中的 pathConfig 选项里指定本地化路径。

middleware.js
export default createNextMiddleware({
  pathConfig: {
    "/about": "/about",
    "/airplanes": {
      "zh": "/飞机",
    }
  },
});

有关其工作方式的详细说明,请参见i18n 路由指南

移除默认 locale 前缀

prefixDefaultLocale 选项设置为 false,即可移除默认 locale 的前缀。

middleware.js
export default createNextMiddleware({
  prefixDefaultLocale: true,
});

当该值为 true 时,所有路径都必须加上 locale 前缀。 如果将其设为 false(默认),则仅会从路径中移除默认的 locale。


注意事项

  • createNextMiddleware 是一个用于在 Next.js 中创建中间件的实用函数。

下一步

本指南如何?