【发布时间】:2022-07-21 16:28:12
【问题描述】:
我想给我的项目添加一个配置,我有这样一个项目结构:
app:
-cmd
- main
-app.go
-internal
- config
-config.go
-pkg
config.yaml
go.mod
go.sum
在配置文件中,我要读取config.yaml:
func GetConfig() *Config {
once.Do(func() {
instance = &Config{}
logger := logging.GetLogger("info")
logger.Info("start config initialisation")
if err := cleanenv.ReadConfig("config.yaml", instance); err != nil {
help, _ := cleanenv.GetDescription(instance, nil)
logger.Info(help)
logger.Fatal(err)
}
})
return instance
}
我得到一个错误:系统找不到指定的文件。 而要修复它,我需要将配置文件移动到启动应用程序的文件夹中,即 cmd/main 我想知道是否有可能以某种方式修复它,以便文件与项目的初始化以及 go.mod 等一起存在。我试图指定不同的路径来代替阅读该文件,但没有任何效果。
我使用 cleanenv 库来阅读
【问题讨论】:
-
路径相对于working directory,而不是源文件或可执行文件的位置。如果您想将文件与可执行文件一起分发,则embed 可执行文件中的文件。
标签: go