URL 拼接
package version >0.4.0
shadcn any version
author: cmtlyt
update time: 2026/04/08 15:42:00
智能处理 baseUrl 和 url 的拼接,避免重复斜杠,支持绝对 URL 和相对 URL。
特性
- 智能拼接: 自动处理 baseUrl 和 url 的拼接
- 避免重复: 自动去除重复的斜杠
- 绝对 URL: 支持完整的绝对 URL
- 相对路径: 支持相对路径和绝对路径
- 动态更新: 支持动态更新 Base URL
基础用法
完整 URL 支持
可以使用完整的绝对 URL,无需配置 baseUrl:
高级用法
路径拼接优化
智能处理 baseUrl 和 url 的拼接,避免重复斜杠。
拼接规则
- 绝对 URL 优先:如果 url 是绝对 URL(以协议开头,如
https://),直接使用,不与 baseUrl 拼接 - 智能拼接逻辑:
- 自动提取 baseUrl 的 pathname 部分
- 如果 baseUrl 的 pathname 是
/,则忽略该部分 - 否则移除 baseUrl pathname 末尾的
/ - url 如果不以
/开头,自动添加/ - 最终拼接为:
${basePath}${relativePath}
- 完整 URL 支持:可以使用绝对 URL,无需配置 baseUrl
示例
动态更新 Base URL
在 API Map 中使用
注意事项
⚠️ 路径拼接
- baseUrl 和 url 的拼接会自动处理重复的斜杠
- 支持相对路径和绝对路径
- 完整的绝对 URL 不需要 baseUrl
- 在 Node 环境中设置非绝对路径的 baseUrl 时,需要确保
location.origin可用
🔧 动态更新
- 使用
$updateBaseUrl方法可以动态更新 Base URL - 更新 Base URL 会影响所有后续的请求
- 多次访问同一个 API 会返回相同的引用
🔧 拼接规则
- 绝对 URL(以协议开头)优先,不与 baseUrl 拼接
- 相对 URL 会与 baseUrl 智能拼接
- 自动处理重复的斜杠,避免路径错误
- 支持复杂的路径结构,如
/api/v1/user
🔧 环境兼容
- 浏览器环境:直接使用
location.origin - Node 环境:需要确保
location.origin可用 - 如果
location.origin不可用,会抛出错误