我正在尝试从目录加载一个html文件,我收到错误"打开模板:没有这样的文件或目录"
我的目录结构在
下面/用户/ {名} /去/ SRC /应用 main.go
/用户/ {名} /去/ SRC /应用程序/模板 mytemplate.html
错误来自下面一行
template.Must(template.ParseFiles(filepath.Join("templates", "mytemplate.html")))
我是新手,只是试图了解语法。
编辑1
我正在使用" go build"来构建项目。命令并从" app"执行它上面显示的目录。
$ GOROOT = / usr / local / go $ GOPATH = / Users / {username} / go
我还更新了目录结构以集成$ GOPATH
答案 0 :(得分:0)
使用
检查程序在运行时的工作目录dir, _ := os.Getwd()
fmt.Println(dir)
然后您可以使用它来获取模板的正确路径
template.Must(template.ParseFiles(filepath.Join(dir, "templates", "mytemplate.html")))
对于生产用途,您可以从配置文件或环境中获取dir
的val,
参考:https://golang.org/pkg/os/#Getwd
编辑:运行程序时,请确保使用终端中的cd
在正确的目录中
答案 1 :(得分:-1)
试试这个,
template.Must(template.New("mytemplate.html").ParseFiles("templates/mytemplate.html"))