我試圖從我的測試文件中分割我的應用程序文件。它看起來是這樣的:馬丁尼模板和測試
main.go
views/
layouts/
layout.html
spec/
main_test.go
main.go
創建一個馬提尼應用程序,並告訴Martini.render
到哪裏尋找的看法:
func CreateApplication() {
m := martini.Classic()
m.Use(render.Renderer(render.Options{
Directory: "views",
Layout: "layouts/layout",
Extensions: []string{".html"},
}))
}
這所有的作品真的很好,當我使用go run
從根文件夾。但是,當我嘗試使用spec/main_test.go
文件中的CreateApplication()
函數時,它現在正在查找spec/views
中的視圖,因爲這是運行文件夾。
我沿着嘗試使用runtime.Caller()
獲取絕對路徑的路線,但是在編譯二進制文件時完全混亂了。
我想我的問題是我如何使這項工作?我希望CreateApplication()
的工作方式不管從何處調用。
使用絕對路徑而不是相對路徑? – 2014-11-09 04:16:10
編輯說「絕對」而不是「相對」。如果我確實可以獲得絕對路徑並且工作正常,我很樂意看到代碼。我無法讓'os.Getwd()'和'filepath.Join'工作。 – Ronze 2014-11-09 04:31:12
我結束了傳遞一個字符串與相對路徑的根。按照此處的進展:https://github.com/runemadsen/golang-rails-template。 – Ronze 2014-11-09 05:15:58