1. 新增 resolveMediaUrl() 工具函数,统一处理 storage_path 前缀和 JWT token 2. MediaLibrary 和 MediaPicker 改用 resolveMediaUrl,消除重复逻辑 3. banner_handler 不再硬编码 localhost:3000,改为从 Host header 动态构建 base_url
15 lines
596 B
TypeScript
15 lines
596 B
TypeScript
/**
|
||
* 将后端返回的 storage_path / thumbnail_path 转换为可访问的前端 URL。
|
||
*
|
||
* 后端存储路径格式: "./uploads/{tenant_id}/{filename}" 或 "/uploads/..."
|
||
* 前端统一使用相对路径 "/uploads/...",由 Vite(dev)或 nginx(prod)代理到后端。
|
||
*
|
||
* 如需认证,自动附加 ?token= 参数。
|
||
*/
|
||
export function resolveMediaUrl(rawPath: string | null | undefined): string {
|
||
if (!rawPath) return '';
|
||
const base = rawPath.replace(/^\.\//, '/');
|
||
const token = localStorage.getItem('access_token');
|
||
return token ? `${base}?token=${token}` : base;
|
||
}
|