beego.AppConfig.Stringデフォルト構成の値は取り出せません

2203 ワード

今日、新しく開発された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からデフォルトの構成を取得します.したがって、この2つのパスを印刷すると、対応するパスの下にapp.confが印刷されていない値は******/gomodule/binであり、デフォルトのパスはappの起動パスであることがわかります.デフォルトパラメータgo installを使用してコンパイルされたバイナリファイルは$GOPATH/binである.その考え方は簡単だ.
  • コンパイルされたバイナリファイルをappが存在するディレクトリの下に移動すればよい.一般的には$GOPATH/src/appname/でよい.