读取配置文件时出错。Golang 使用 viper 包

请在读取 env.json 文件时需要帮助。任何时候我运行我的代码我总是得到这个错误

Error reading config file, Config File "env" Not Found in "[/Users/franklynomonade/go/src/bitbucket.org/core_backend/cmd/server/bitbucket.org/core_backend/pkg/app/config]"

"/Users/franklynomonade/go/src/bitbucket.org/core_backend/cmd/server"是我的main.go文件所在"bitbucket.org/core_backend/pkg/app/config"的路径,而是env.json文件所在的路径。我相信应该读取 env.json 文件的路径是"bitbucket.org/core_backend/pkg/app/config"而不是"/Users/franklynomonade/go/src/bitbucket.org/core_backend/cmd/server/bitbucket.org/core_backend/pkg/app/config"

我正在使用github.com/spf13/viper包来读取 env.json 文件。

http://img3.mukewang.com/638477440001453c18200648.jpg

func LoadConfig() {

    viper.AddConfigPath(myPath)


    viper.SetConfigName("env")


    viper.SetConfigType("json")


    // searches for config file in given paths and read it

    if err := viper.ReadInConfig(); err != nil {

        log.Fatalf("error reading config file: %s", err)

    }


    // confirm which config file is used

    log.Printf("Using s: %s\n", viper.ConfigFileUsed()

}


关于如何解决这个问题的任何想法?



紫衣仙女
浏览 273回答 1
1回答

哈士奇WWW

您可以使用相对路径或绝对路径,通常,最好使用相对路径,因为您不需要在项目外部指定路径。使用相对路径时,它会搜索相对于执行二进制文件的文件夹的路径。假设这是树:├── core_backend│   ├── cmd│   └── pkg│       ├── api │       └── app│            └── config│                  └── env.json假设您在core_backend目录中运行程序,您会将变量myPath设置为此值"pkg/app/config"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go