Middleware

createNextMiddleware

createNextMiddleware() 方法 API 参考。

概览

createNextMiddleware 是一个用于创建中间件函数的实用工具,可在 Next.js 中使用。 它允许你在 Next.js 应用中为每个 locale 配置不同的路由。

例如,法语用户会被定向至 /fr/landing,而英语用户会被定向至 /en/landing

有关如何使用该中间件的更多信息,请参阅 i18n 路由指南

参考资料

Props

Prop

Type

描述

Prop描述
pathConfig一个嵌套对象,用于为应用指定各语言本地化路径。
localeRouting是否启用 i18n 路由的开关。
prefixDefaultLocale是否在默认 locale 下移除 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).*)",
  ],
}

本地化路径

你可以在中间件文件中通过 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 创建中间件函数。

下一步

这份指南怎么样?

createNextMiddleware