Skip to content

Commit 7c32af4

Browse files
committed
refactor!: move api_url and base_path to config file
1 parent 03dbb3a commit 7c32af4

5 files changed

Lines changed: 52 additions & 23 deletions

File tree

internal/bootstrap/data/setting.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ func InitialSettings() []model.SettingItem {
7070
initialSettingItems = []model.SettingItem{
7171
// site settings
7272
{Key: conf.VERSION, Value: conf.Version, Type: conf.TypeString, Group: model.SITE, Flag: model.READONLY},
73-
{Key: conf.ApiUrl, Value: "", Type: conf.TypeString, Group: model.SITE},
74-
{Key: conf.BasePath, Value: "", Type: conf.TypeString, Group: model.SITE},
73+
//{Key: conf.ApiUrl, Value: "", Type: conf.TypeString, Group: model.SITE},
74+
//{Key: conf.BasePath, Value: "", Type: conf.TypeString, Group: model.SITE},
7575
{Key: conf.SiteTitle, Value: "AList", Type: conf.TypeString, Group: model.SITE},
7676
{Key: conf.Announcement, Value: "### repo\nhttps://github.com/alist-org/alist", Type: conf.TypeText, Group: model.SITE},
7777
{Key: "pagination_type", Value: "all", Type: conf.TypeSelect, Options: "all,pagination,load_more,auto_load_more", Group: model.SITE},

internal/conf/config.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ type Config struct {
3535
Force bool `json:"force" env:"FORCE"`
3636
Address string `json:"address" env:"ADDR"`
3737
Port int `json:"port" env:"PORT"`
38-
JwtSecret string `json:"jwt_secret" env:"JWT_SECRET"`
38+
SiteURL string `json:"site_url" env:"SITE_URL"`
3939
Cdn string `json:"cdn" env:"CDN"`
40+
JwtSecret string `json:"jwt_secret" env:"JWT_SECRET"`
4041
Database Database `json:"database"`
4142
Scheme Scheme `json:"scheme"`
4243
TempDir string `json:"temp_dir" env:"TEMP_DIR"`

server/common/base.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,17 @@ import (
1010
)
1111

1212
func GetApiUrl(r *http.Request) string {
13-
api := setting.GetStr(conf.ApiUrl)
14-
protocol := "http"
15-
if r != nil {
13+
api := conf.Conf.SiteURL
14+
if api == "" {
15+
api = setting.GetStr(conf.ApiUrl)
16+
}
17+
if r != nil && api == "" {
18+
protocol := "http"
1619
if r.TLS != nil {
1720
protocol = "https"
1821
}
19-
if api == "" {
20-
api = fmt.Sprintf("%s://%s", protocol, r.Host)
21-
}
22+
api = fmt.Sprintf("%s://%s", protocol, r.Host)
23+
2224
}
2325
strings.TrimSuffix(api, "/")
2426
return api

server/static/config.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package static
2+
3+
import (
4+
stdpath "path"
5+
"strings"
6+
7+
"github.com/alist-org/alist/v3/internal/conf"
8+
"github.com/alist-org/alist/v3/internal/setting"
9+
"github.com/alist-org/alist/v3/pkg/utils"
10+
)
11+
12+
type SiteConfig struct {
13+
ApiURL string
14+
BasePath string
15+
Cdn string
16+
}
17+
18+
func getSiteConfig() SiteConfig {
19+
siteConfig := SiteConfig{
20+
ApiURL: conf.Conf.SiteURL,
21+
BasePath: stdpath.Base(conf.Conf.SiteURL),
22+
Cdn: strings.ReplaceAll(strings.TrimSuffix(conf.Conf.Cdn, "/"), "$version", conf.WebVersion),
23+
}
24+
// try to get old config
25+
if siteConfig.ApiURL == "" {
26+
siteConfig.ApiURL = setting.GetStr(conf.ApiUrl)
27+
siteConfig.BasePath = setting.GetStr(conf.BasePath)
28+
}
29+
if siteConfig.BasePath != "" {
30+
siteConfig.BasePath = utils.StandardizePath(siteConfig.BasePath)
31+
}
32+
if siteConfig.Cdn == "" {
33+
siteConfig.Cdn = siteConfig.BasePath
34+
}
35+
return siteConfig
36+
}

server/static/static.go

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"github.com/alist-org/alist/v3/cmd/flags"
1111
"github.com/alist-org/alist/v3/internal/conf"
1212
"github.com/alist-org/alist/v3/internal/setting"
13-
"github.com/alist-org/alist/v3/pkg/utils"
1413
"github.com/alist-org/alist/v3/public"
1514
"github.com/gin-gonic/gin"
1615
log "github.com/sirupsen/logrus"
@@ -26,16 +25,7 @@ func InitIndex() {
2625
}
2726

2827
func UpdateIndex() {
29-
cdn := strings.TrimSuffix(conf.Conf.Cdn, "/")
30-
cdn = strings.ReplaceAll(cdn, "$version", conf.WebVersion)
31-
basePath := setting.GetStr(conf.BasePath)
32-
if basePath != "" {
33-
basePath = utils.StandardizePath(basePath)
34-
}
35-
if cdn == "" {
36-
cdn = basePath
37-
}
38-
apiUrl := setting.GetStr(conf.ApiUrl)
28+
siteConfig := getSiteConfig()
3929
favicon := setting.GetStr(conf.Favicon)
4030
title := setting.GetStr(conf.SiteTitle)
4131
customizeHead := setting.GetStr(conf.CustomizeHead)
@@ -45,9 +35,9 @@ func UpdateIndex() {
4535
replaceMap1 := map[string]string{
4636
"https://jsd.nn.ci/gh/alist-org/logo@main/logo.svg": favicon,
4737
"Loading...": title,
48-
"cdn: undefined": fmt.Sprintf("cdn: '%s'", cdn),
49-
"base_path: undefined": fmt.Sprintf("base_path: '%s'", basePath),
50-
"api: undefined": fmt.Sprintf("api: '%s'", apiUrl),
38+
"cdn: undefined": fmt.Sprintf("cdn: '%s'", siteConfig.Cdn),
39+
"base_path: undefined": fmt.Sprintf("base_path: '%s'", siteConfig.BasePath),
40+
"api: undefined": fmt.Sprintf("api: '%s'", siteConfig.ApiURL),
5141
"main_color: undefined": fmt.Sprintf("main_color: '%s'", mainColor),
5242
}
5343
for k, v := range replaceMap1 {

0 commit comments

Comments
 (0)