提交修改
CI / Server (Go) (push) Has been cancelled
CI / Web (Next.js) (push) Has been cancelled
CI / Mobile (React Native) (push) Has been cancelled
CI / Admin (React) (push) Has been cancelled
CI / Docker Build (push) Has been cancelled

This commit is contained in:
zeronline
2026-06-29 16:49:54 +08:00
parent 545329ac40
commit b01a5f91c3
43 changed files with 740 additions and 338 deletions
+16 -8
View File
@@ -21,17 +21,25 @@ type Config struct {
S3Bucket string
}
// Load 加载配置(优先读取环境变量,支持 .env 文件)
// 查找顺序:可执行文件同目录 → 当前目录 → 环境变量
// Load 加载配置(支持 .env 文件)
// 1. 先加载 .env(基础配置,本地开发友好)
// 2. 再加载 .env.<ENV>(环境覆盖,由 ENV 环境变量指定)
// 搜索路径:可执行文件目录 → 当前目录 → server/ 子目录
// 优先级(高 → 低):环境覆盖 → .env → 系统环境变量 → 默认值
func Load() *Config {
// 从可执行文件所在目录加载 .env(宝塔场景)
if exe, err := os.Executable(); err == nil {
exeDir := filepath.Dir(exe)
_ = godotenv.Load(filepath.Join(exeDir, ".env"))
loadEnv := func(name string) {
if exe, err := os.Executable(); err == nil {
_ = godotenv.Overload(filepath.Join(filepath.Dir(exe), name))
}
_ = godotenv.Overload(name)
_ = godotenv.Overload(filepath.Join(".", "server", name))
}
// 从当前目录加载 .env(本地开发场景)
_ = godotenv.Load()
loadEnv(".env")
if env := os.Getenv("ENV"); env != "" {
loadEnv(".env." + env)
}
c := &Config{
Port: getEnv("PORT", "8080"),