duanpoqiu0919 2015-07-07 09:42
浏览 34
已采纳

展示框架中的相对路径

How can import a file realtive to the revel basefolder in revel framework. Currently I do the following to get hold of some config values.

file, err := ioutil.ReadFile("conf/config.conf")
...

This results in my server only working if i stand in the app directory when starting revel with

revel run myapp

Is there a way to access the base folder?

  • 写回答

2条回答 默认 最新

  • douyi0219 2015-07-07 09:52
    关注

    There are exported global variables in the revel package, you can use any of these:

    var (
        // App details
        AppName    string // e.g. "sample"
        BasePath   string // e.g. "/Users/revel/gocode/src/corp/sample"
        AppPath    string // e.g. "/Users/revel/gocode/src/corp/sample/app"
        ViewsPath  string // e.g. "/Users/revel/gocode/src/corp/sample/app/views"
        ImportPath string // e.g. "corp/sample"
        SourcePath string // e.g. "/Users/revel/gocode/src"
    
        // Revel installation details
        RevelPath string // e.g. "/Users/revel/gocode/src/revel"
    
        // Where to look for templates and configuration.
        // Ordered by priority.  (Earlier paths take precedence over later paths.)
        CodePaths     []string
        ConfPaths     []string
        TemplatePaths []string
    )
    

    If it is empty for you, that is most likely because you started your app from the base folder.

    Note that these paths are set by the Init(mode, importPath, srcPath string) function. It's documentation states:

    srcPath - the path to the source directory, containing Revel and the app.
      If not specified (""), then a functioning Go installation is required.
    

    Also check out: how to reference a relative file from code and tests

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?