mirror of
https://github.com/mindoc-org/mindoc.git
synced 2025-09-21 03:44:17 +08:00
实现部署到二级虚拟目录
This commit is contained in:
@@ -15,14 +15,16 @@ type Pagination struct {
|
||||
Request *http.Request
|
||||
Total int
|
||||
Pernum int
|
||||
BaseUrl string
|
||||
}
|
||||
|
||||
//NewPagination 新建分页器
|
||||
func NewPagination(req *http.Request, total int, pernum int) *Pagination {
|
||||
func NewPagination(req *http.Request, total int, pernum int,baseUrl string) *Pagination {
|
||||
return &Pagination{
|
||||
Request: req,
|
||||
Total: total,
|
||||
Pernum: pernum,
|
||||
BaseUrl: baseUrl,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,7 +105,7 @@ func (p *Pagination) Pages() string {
|
||||
//pageURL 生成分页url
|
||||
func (p *Pagination) pageURL(page string) string {
|
||||
//基于当前url新建一个url对象
|
||||
u, _ := url.Parse(p.Request.URL.String())
|
||||
u, _ := url.Parse(p.BaseUrl + p.Request.URL.String())
|
||||
q := u.Query()
|
||||
q.Set("page", page)
|
||||
u.RawQuery = q.Encode()
|
||||
|
100
utils/url.go
100
utils/url.go
@@ -1,6 +1,9 @@
|
||||
package utils
|
||||
|
||||
import "strings"
|
||||
import (
|
||||
"strings"
|
||||
"github.com/astaxie/beego"
|
||||
)
|
||||
|
||||
func JoinURI(elem ...string) string {
|
||||
if len(elem) <= 0 {
|
||||
@@ -26,3 +29,98 @@ func JoinURI(elem ...string) string {
|
||||
}
|
||||
return uri
|
||||
}
|
||||
|
||||
//重写生成URL的方法,加上完整的域名
|
||||
func URLFor(endpoint string, values ...interface{}) string {
|
||||
baseUrl := beego.AppConfig.DefaultString("baseurl","")
|
||||
pathUrl := beego.URLFor(endpoint, values ...)
|
||||
|
||||
if strings.HasPrefix(pathUrl,"http://") {
|
||||
return pathUrl
|
||||
}
|
||||
if strings.HasPrefix(pathUrl,"/") && strings.HasSuffix(baseUrl,"/") {
|
||||
return baseUrl + pathUrl[1:]
|
||||
}
|
||||
if !strings.HasPrefix(pathUrl,"/") && !strings.HasSuffix(baseUrl,"/") {
|
||||
return baseUrl + "/" + pathUrl
|
||||
}
|
||||
return baseUrl + beego.URLFor(endpoint, values ...)
|
||||
}
|
||||
|
||||
func URLForWithCdnImage(p string) string {
|
||||
if strings.HasPrefix(p, "http://") || strings.HasPrefix(p, "https://") {
|
||||
return p
|
||||
}
|
||||
cdn := beego.AppConfig.DefaultString("cdnimg", "")
|
||||
//如果没有设置cdn,则使用baseURL拼接
|
||||
if cdn == "" {
|
||||
baseUrl := beego.AppConfig.DefaultString("baseurl","")
|
||||
|
||||
if strings.HasPrefix(p,"/") && strings.HasSuffix(baseUrl,"/") {
|
||||
return baseUrl + p[1:]
|
||||
}
|
||||
if !strings.HasPrefix(p,"/") && !strings.HasSuffix(baseUrl,"/") {
|
||||
return baseUrl + "/" + p
|
||||
}
|
||||
return baseUrl + p
|
||||
}
|
||||
if strings.HasPrefix(p, "/") && strings.HasSuffix(cdn, "/") {
|
||||
return cdn + string(p[1:])
|
||||
}
|
||||
if !strings.HasPrefix(p, "/") && !strings.HasSuffix(cdn, "/") {
|
||||
return cdn + "/" + p
|
||||
}
|
||||
return cdn + p
|
||||
}
|
||||
|
||||
func URLForWithCdnCss (p string) string {
|
||||
cdn := beego.AppConfig.DefaultString("cdncss", "")
|
||||
if strings.HasPrefix(p, "http://") || strings.HasPrefix(p, "https://") {
|
||||
return p
|
||||
}
|
||||
//如果没有设置cdn,则使用baseURL拼接
|
||||
if cdn == "" {
|
||||
baseUrl := beego.AppConfig.DefaultString("baseurl","")
|
||||
|
||||
if strings.HasPrefix(p,"/") && strings.HasSuffix(baseUrl,"/") {
|
||||
return baseUrl + p[1:]
|
||||
}
|
||||
if !strings.HasPrefix(p,"/") && !strings.HasSuffix(baseUrl,"/") {
|
||||
return baseUrl + "/" + p
|
||||
}
|
||||
return baseUrl + p
|
||||
}
|
||||
if strings.HasPrefix(p, "/") && strings.HasSuffix(cdn, "/") {
|
||||
return cdn + string(p[1:])
|
||||
}
|
||||
if !strings.HasPrefix(p, "/") && !strings.HasSuffix(cdn, "/") {
|
||||
return cdn + "/" + p
|
||||
}
|
||||
return cdn + p
|
||||
}
|
||||
|
||||
func URLForWithCdnJs(p string) string {
|
||||
cdn := beego.AppConfig.DefaultString("cdnjs", "")
|
||||
if strings.HasPrefix(p, "http://") || strings.HasPrefix(p, "https://") {
|
||||
return p
|
||||
}
|
||||
//如果没有设置cdn,则使用baseURL拼接
|
||||
if cdn == "" {
|
||||
baseUrl := beego.AppConfig.DefaultString("baseurl","")
|
||||
|
||||
if strings.HasPrefix(p,"/") && strings.HasSuffix(baseUrl,"/") {
|
||||
return baseUrl + p[1:]
|
||||
}
|
||||
if !strings.HasPrefix(p,"/") && !strings.HasSuffix(baseUrl,"/") {
|
||||
return baseUrl + "/" + p
|
||||
}
|
||||
return baseUrl + p
|
||||
}
|
||||
if strings.HasPrefix(p, "/") && strings.HasSuffix(cdn, "/") {
|
||||
return cdn + string(p[1:])
|
||||
}
|
||||
if !strings.HasPrefix(p, "/") && !strings.HasSuffix(cdn, "/") {
|
||||
return cdn + "/" + p
|
||||
}
|
||||
return cdn + p
|
||||
}
|
Reference in New Issue
Block a user