猿问

去 Template.ParseFiles 和 filepath.Join

我正在尝试从目录加载 html 文件,但收到错误“打开模板:没有这样的文件或目录”

我的目录结构如下

/Users/{username}/go/src/app main.go

/Users/{username}/go/src/app/templates mytemplate.html

错误来自下面的行

template.Must(template.ParseFiles(filepath.Join("templates", "mytemplate.html")))

我是新手,只是想感受一下语法。

编辑 1

我正在使用“go build”命令构建项目并从上面显示的“app”目录中执行它。

$GOROOT = /usr/local/go $GOPATH = /Users/{username}/go

我还更新了目录结构以集成 $GOPATH


慕娘9325324
浏览 195回答 2
2回答

LEATH

检查程序在运行时的工作目录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在终端中使用的正确目录中

HUX布斯

尝试这个,template.Must(template.New("mytemplate.html").ParseFiles("templates/mytemplate.html"))
随时随地看视频慕课网APP

相关分类

Go
我要回答