我需要設置我的配置文件的路徑。問題是,例如,我的配置文件在其中,my_app/config但我的工作目錄在my_app/workingdir其中,我不應該設置絕對路徑或工作目錄的路徑,因為在生產中絕對路徑和工作目錄會改變。對于測試,我知道我可以從我的代碼位置設置路徑,但我需要一種更清潔的方式。 workingdir, err := os.Getwd() if err != nil { logger.Error(err) } viper.SetConfigFile(workingdir + "/config/local.yaml")
3 回答

肥皂起泡泡
TA貢獻1829條經驗 獲得超6個贊
不要將配置文件放在工作目錄之外,始終在主包中創建一個新文件夾,如 conf 并將文件放入其中。
因此,目錄結構將是
my_app/conf/config.yml
然后通過 main.go 的 init 函數將配置文件設置為 viper
//main.go
func init() {
setUpViper()
}
func setUpViper() {
viper.AddConfigPath("./conf")
viper.SetConfigName("config")
}

楊__羊羊
TA貢獻1943條經驗 獲得超7個贊
您可以使用..轉到父目錄,然后從那里轉到config文件夾。
workingdir, err := os.Getwd()
if err != nil {
logger.Error(err)
}
viper.SetConfigFile(workingdir + "/../config/local.yaml")

大話西游666
TA貢獻1817條經驗 獲得超14個贊
使用“..”指定目錄的父級。
因為相對路徑根植于工作目錄,所以無需在應用程序代碼中獲取工作目錄。
使用以下命令指定配置文件的路徑:
viper.SetConfigFile("../config/local.yaml")
- 3 回答
- 0 關注
- 198 瀏覽
添加回答
舉報
0/150
提交
取消