从 URL 获取的语言环境不正确
问题描述
当尝试从 URL 访问语言环境参数时,可能会遇到语言环境值不正确的问题:
const { locale } = await params;console.log(locale); // 返回 "about" 而不是预期的语言环境解决方案
1. 验证文件结构
确保你的 Next.js 应用路由路径遵循以下结构:
src/app/[locale]/about/page.tsx2. 检查中间件配置
该问题通常发生在中间件不存在或未被触发时。中间件文件应位于:
src/middleware.ts当 prefixDefault 设置为 false 时,该中间件负责重写路由。例如,它会将 /en/about 重写为 /about。
3. 基于配置的 URL 模式
默认配置(prefixDefault: false,noPrefix: false)
- 英文: /about
- 法文: /fr/about
- 西班牙文: /es/about
使用 prefixDefault: true
- 英文: /en/about
- 法文: /fr/about
- 西班牙文: /es/about
使用 noPrefix: true
- 英文: /about
- 法文: /about
- 西班牙文: /about
有关这些配置选项的更多详细信息,请参阅配置文档。