我用go毒蛇读取我的回购中的config
文件
myrepo
-config.yaml
-main.go
我使用以下代码
viper.SetConfigName("config")
viper.AddConfigPath(".")
viper.SetConfigType("yaml")
err := viper.ReadInConfig()
现在我把它编译成二进制文件,现在我从不同的路径运行它(运行bin),我得到了配置没有找到的错误,这里有什么问题吗?
文件在那里,如果我在调试中使用ioutil.ReadFile
,我会得到它,但不是从可执行文件.
发布于 2018-10-21 08:14:37
因此,您告诉viper,它可以从位置./config.yaml
读取配置。编译项目时,编译器不会用二进制文件编译config.yaml
内部的配置数据。因此,每次运行二进制文件时,它都会查找一个文件./config.yaml
。
所以你在这里没有什么选择。要么用二进制文件移动配置文件,并确保在复制二进制文件时,也复制配置文件。另一个选项是有一个标志"configpath“,您可以将配置路径传递给它,而毒蛇应该读取该标志并获取信任信息。另一种选择是将配置放在.go文件中,这样就可以编译配置(但我猜这是您不想要的)。
https://stackoverflow.com/questions/52916379
复制相似问题