Files
x_admin/server/util/url.go
2025-07-27 15:17:38 +08:00

58 lines
1006 B
Go

package util
import (
"net/url"
"path"
"strings"
"x_admin/config"
"x_admin/core"
)
var (
UrlUtil = urlUtil{}
publicPrefix = config.FileConfig.PublicPrefix //"/api/uploads"
)
// urlUtil 文件路径处理工具
type urlUtil struct{}
// ToAbsoluteUrl 转绝对路径
func (uu urlUtil) ToAbsoluteUrl(u string) string {
// TODO: engine默认local
if u == "" {
return ""
}
// 处理/api/static/开头的路径
if strings.HasPrefix(u, "/api/static/") {
return u
}
engine := "local"
if engine == "local" {
return path.Join(publicPrefix, u)
}
// TODO: 其他engine
return u
}
// 去掉publicPrefix前缀
func (uu urlUtil) ToRelativeUrl(u string) string {
// TODO: engine默认local
if u == "" {
return ""
}
up, err := url.Parse(u)
if err != nil {
core.Logger.Errorf("ToRelativeUrl Parse err: err=[%+v]", err)
return u
}
engine := "local"
if engine == "local" {
lu := up.String()
return strings.Replace(lu, publicPrefix, "", 1)
}
// TODO: 其他engine
return u
}