我正在使用 go viper 讀取config我的 repo 中的文件myrepo
-config.yaml
-main.go我使用以下代碼viper.SetConfigName("config")
viper.AddConfigPath(".")
viper.SetConfigType("yaml")
err := viper.ReadInConfig()現(xiàn)在我將它編譯為二進(jìn)制文件,現(xiàn)在我從不同的路徑運(yùn)行它(運(yùn)行 bin),我得到了找不到配置的錯(cuò)誤,這里可能出了什么問(wèn)題?該文件在那里,如果我ioutil.ReadFile在調(diào)試中使用,我會(huì)得到它但不是來(lái)自可執(zhí)行文件......
1 回答

慕哥6287543
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
所以你告訴 viper 它可以從 location 讀取配置./config.yaml
。當(dāng)你編譯項(xiàng)目時(shí),編譯器不會(huì)將里面的配置數(shù)據(jù)config.yaml
和二進(jìn)制一起編譯。因此,每次二進(jìn)制文件運(yùn)行時(shí),它都會(huì)查找文件./config.yaml
.
所以你在這里幾乎沒(méi)有選擇。要么將配置文件與二進(jìn)制文件一起移動(dòng),并確保在復(fù)制二進(jìn)制文件時(shí)也復(fù)制配置文件。您擁有的另一個(gè)選擇是擁有一個(gè)標(biāo)志“configpath”,您將配置路徑傳遞給該標(biāo)志,viper 應(yīng)該讀取該標(biāo)志并獲取配置。另一種選擇是將配置放在 .go 文件中,然后編譯配置(但我猜這是你不想要的)
- 1 回答
- 0 關(guān)注
- 129 瀏覽
添加回答
舉報(bào)
0/150
提交
取消