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

huangapple go评论81阅读模式
英文:

html/template: pattern matches no files even with absolute path

问题

我有一个全局常量,像这样。

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

英文:

I have a global constant like this.

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

Then, later in my code I call this.

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

I know that filepath.Join(TemplateDir, "*.tmpl") produces /home/joe/go/src/proj/template/*.tmpl.

This all compiles fine. However, when I try to run my executable from a directory outside of proj, I get this error.

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

I'm not sure why I'm getting that error if I passed in an absolute path. Any ideas?

Update
I forgot to mention that I'm calling my program through the $PATH variable. That is, I'm not executing ./proj anywhere. I'm just calling proj from my home directory.

答案1

得分: 1

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

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

这样做是可以正常工作的,但是这样做是行不通的。

~/$ proj

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

英文:

So, it turns out that the version I was calling using my $PATH variable was outdated! Here's what happened.

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

That would work fine, but this wouldn't work.

~/$ proj

That's because I forgot to go install my package! After doing go install in my package directory, I could call my program from anywhere.

huangapple
  • 本文由 发表于 2014年12月7日 06:09:29
  • 转载请务必保留本文链接:https://go.coder-hub.com/27337139.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定