Creation:2026-01-22Last update:2026-01-22
将此文档参考到您的 AI 助手ChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
版本历史
- "实现自定义 URL 重写"v8.0.02026/1/22
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本编辑此文档
如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接Copy
复制文档 Markdown 到剪贴板
文档:intlayer 的 getLocalizedPath 函数
描述
getLocalizedPath 函数根据提供的 locale 和重写规则,将 canonical path(应用内路径,例如 /about、/product/[id])解析为其本地化等价路径。它对于生成按语言变化的对 SEO 友好的 URL 非常有用。
它是 getLocalizedUrl 的相对路径对应版本 — 对于相对输入,两者都返回相同的值。与 getLocalizedUrl 不同的是,它永远不会返回绝对 URL:domains 配置被忽略,因此从其自己的域提供的区域设置仍然会产生一个路径。接受绝对输入,但其来源会被删除 — 仅保留其路径、查询字符串和哈希。
关键特性:
- 支持使用
[param]语法的动态路由参数。 - 根据配置中定义的自定义重写规则解析路径。
- 如果未找到指定 locale 的重写规则,会自动回退到 canonical path。
函数签名
typescript
复制代码
复制代码到剪贴板
参数
必填参数
canonicalPath: string- 描述:内部应用路径(例如,
/about、/product/[id])。 - 类型:
string - 必填:是
- 描述:内部应用路径(例如,
可选参数
rewriteRules?: RoutingConfig['rewrite']- 描述:定义自定义重写规则的对象。如果未提供,则默认为项目配置中的
routing.rewrite属性。 - 类型:
RoutingConfig['rewrite'] - 默认值:
configuration.routing.rewrite
- 描述:定义自定义重写规则的对象。如果未提供,则默认为项目配置中的
options?: object- Description: 路由覆盖。每个条目都默认使用你项目的配置。
Type:
objectoptions.locales?: Locales[]— 支持的语言环境。默认值:configuration.internationalization.localesoptions.defaultLocale?: Locales— 默认语言环境。默认值:configuration.internationalization.defaultLocaleoptions.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'— 语言环境在路径中的显示方式。默认值:configuration.routing.modeoptions.rewrite?: RoutingConfig['rewrite']— 自定义重写规则。默认值:configuration.routing.rewrite
返回值
- 类型:
string - 描述:为指定语言环境生成的本地化路径。
该类型是从您配置中声明的重写规则缩小的,因此编辑器显示的是解析后的路径而不是裸露的 string:
typescript
复制代码
复制代码到剪贴板
同样的收窄流入 getLocalizedUrl,它在添加区域设置前缀之前应用重写规则。
两种情况保持扩展为 string,因为它们在编译时无法解析:
- 不是字符串字面量的路径(例如从变量构建的路径);
- 与使用多段或可选参数的规则匹配的路径(
[...slug]、[[...slug]]、:param?)。
使用示例
基本用法(使用配置)
如果你在 intlayer.config.ts 中配置了自定义重写规则:
typescript
复制代码
复制代码到剪贴板
动态路由的用法
typescript
复制代码
复制代码到剪贴板
手动重写规则
你也可以将手动重写规则传递给该函数:
typescript
复制代码
复制代码到剪贴板
省略 Locale
当未提供 locale 时,路径将针对配置的默认 locale 进行本地化:
typescript
复制代码
复制代码到剪贴板
相关函数
getCanonicalPath: 将本地化路径解析回其内部规范路径。getLocalizedUrl: 生成一个完全本地化的 URL(包括协议、主机和语言前缀)。
