viperを使っていたときに遭遇した事象です。
以下のように
func LoadConfig(filename string) (*viper.Viper, error) { v := viper.New() // filename = "config.yaml" v.SetConfigName(filename) v.AddConfigPath(".") v.AutomaticEnv() if err := v.ReadInConfig(); err != nil { if _, ok := err.(viper.ConfigFileNotFoundError); ok { return nil, errors.New("config file not found") } return nil, err } return v, nil } // config file not found
config.yaml
というファイル名を渡してロードしようとしたときずっとNot Foundエラーになり、困っていました
拡張子をつけるのはだめ
拡張子をつけていたことが問題でした。拡張子がついていると読み込めないみたいです。
そのため、拡張子を外してconfig
という名前で読み込んであげるとすんなり読み込めました。