2014-12-06 52 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後,我可以從任何地方調用我的程序。

相關問題