陶醉框架相对路径(Relative paths in revel framework)

2019-10-23 16:45发布

如何导入文件realtive在陶醉框架随缘basefolder。 目前,我做了一些配置值以下来弄个。

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

这导致我的服务器只有工作,如果我站在app目录与开始时随缘

revel run myapp

是否有访问基础文件夹的方法吗?

Answer 1:

有出口的全局变量在revel包,你可以使用任何一种:

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
)

如果它是空的你,那很可能是因为您从基本文件夹启动您的应用程序。

请注意,这些路径由设置Init(mode, importPath, srcPath string)的功能。 它的文档状态:

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

另外,请查阅: 如何从代码和测试参考的相对文件



Answer 2:

我用这个方法:在CONF / app.conf加一行的这种方式配置的路径:

projectname.path = “/ foldersnames /”

并且在控制器写像这样的方法:

func info(field string) string {                                                                                                                                                                               
  config, err := revel.LoadConfig("app.conf")                                                                                                                                                                  
  if err != nil || config == nil {                                                                                                                                                                             
    log.Fatalln("Failed to load configuration file", err)                                                                                                                                                      
   }                                                                                                                                                                                                            
  return config.StringDefault(field, "empty")                                                                                                                                                                  
} 

你可以建立与此代码一个帮手,并从所有的应用程序需要的配置变量。

你必须调用这种方式:

info("projectname.path")


文章来源: Relative paths in revel framework
标签: go revel