您的位置:首页 > 移动开发

beego.AppConfig.String取不出默认配置的值

2017-02-28 17:43 204 查看
今天在运行新开发的
beego
工程发现使用
beego.AppConfig.String
取不出配置的值。下面说一下解决思路:

beego会默认加载 app.conf

由于beego会默认加载app.conf的配置,所以首先想到的是beego在何时加载默认配置。研究发现代码是在启动时就去加载默认配置的。所以在我使用前一定以及加载过默认配置。所以换一个思路。

beego加载默认app.conf的路径是什么

源码如下:

func init() {
BConfig = newBConfig()
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)
}
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)
}
if err = os.Chdir(AppPath); err != nil {
panic(err)
}
}


上面可以看出,beego默认会从workPath或者AppPath处获取默认配置。所以就将这两个路径打印出来发现对应的路径下没有app.conf

打印出来的值如下
******/gomodule/bin
,默认的路径是app的启动路径。而使用默认参数go install编译出来的二进制文件在
$GOPATH/bin
下。那么思路很简单啦。

将编译好的二进制文件移到app所在的目录下就可以了,一般为
$GOPATH/src/appname/
下即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  beego 默认配置