如何在revel框架中将文件导入到revel basefolder中。目前我执行以下操作来获取一些配置值。
file, err := ioutil.ReadFile("conf/config.conf")
...
这导致我的服务器仅在我使用
启动revel时站在app目录中才有效revel run myapp
有没有办法访问基本文件夹?
答案 0 :(得分: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.
答案 1 :(得分:1)
我使用这种方法: 在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")