提交修改
This commit is contained in:
Binary file not shown.
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user