mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2025-10-05 16:17:00 +08:00
58 lines
1006 B
Go
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
|
|
}
|