diff --git a/config.go b/config.go index 72045fd3..22074bd7 100644 --- a/config.go +++ b/config.go @@ -116,10 +116,6 @@ var ( ) func init() { - AppPath, _ = filepath.Abs(filepath.Dir(os.Args[0])) - - os.Chdir(AppPath) - BConfig = &Config{ AppName: "beego", RunMode: DEV, @@ -180,13 +176,26 @@ func init() { }, } - appConfigPath = filepath.Join(AppPath, "conf", "app.conf") - if !utils.FileExists(appConfigPath) { - AppConfig = &beegoAppConfig{innerConfig: config.NewFakeConfig()} - return + var err error + + if AppPath, err = filepath.Abs(filepath.Dir(os.Args[0])); err != nil { + panic(err) + } + workPath, err := os.Getwd() + if err != nil { + panic(err) } - if err := parseConfig(appConfigPath); err != nil { + appConfigPath = filepath.Join(workPath, "conf", "app.conf") + if !utils.FileExists(appConfigPath) { + appConfigPath = filepath.Join(AppPath, "conf", "app.conf") + if !utils.FileExists(appConfigPath) { + AppConfig = &beegoAppConfig{innerConfig: config.NewFakeConfig()} + return + } + } + + if err = parseConfig(appConfigPath); err != nil { panic(err) } }