2014-12-06 120 views
2

我有一个像这样的全局常量。html/template:模式即使使用绝对路径也不匹配文件

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

+0

您没有向我们提供可重复的错误:[如何创建最小,完整和可验证示例。](http://stackoverflow.com/help/mcve)。 – peterSO 2014-12-06 22:42:17

回答

1

所以,事实证明,我使用我的$PATH变量呼叫的版本已过时!这是发生了什么事。

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

这将工作正常,但这是行不通的。

~/$ proj 

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

相关问题