html / template:即使使用绝对路径,模式也不匹配任何文件

时间:2014-12-06 22:09:29

标签: go

我有这样的全局常量。

const TemplateDir string = "/home/joe/go/src/proj/template/"

然后,在我的代码中,我称之为。

template.ParseGlob(filepath.Join(TemplateDir, "*.tmpl"))

我知道filepath.Join(TemplateDir, "*.tmpl")会产生/home/joe/go/src/proj/template/*.tmpl

这一切都很好。但是,当我尝试从proj之外的目录运行我的可执行文件时,我收到此错误。

html/template: pattern matches no files: `template/*.tmpl`

如果我传入绝对路径,我不知道为什么我会收到错误。有什么想法吗?

更新 我忘了提到我通过$ PATH变量调用我的程序。也就是说,我没有在任何地方执行./proj。我只是从我的主目录中调用proj

1 个答案:

答案 0 :(得分:1)

所以,事实证明我使用$PATH变量调用的版本已经过时了!这就是发生的事情。

src/proj$ go build
src/proj$ ./proj

这样可以正常工作,但这不起作用。

~/$ proj
那是因为我忘记了go install我的包裹!在我的包目录中执行go install后,我可以从任何地方调用我的程序。