2013-08-26 70 views
7

當我運行:Golang新模板不工作

t, _ := template.ParseFiles("index.html") 
t.Execute(w, nil) 

的頁面加載罰款。 但是當我嘗試運行

t := template.New("first") 
t, _ = t.ParseFiles("index.html") 
t.Execute(w, nil) 

加載是一個空白頁的唯一的事。 我想改變一個Golang的html模板中的分隔符值,並想製作模板,更改分隔符值,然後解析文件。

有沒有其他人有這個問題?

回答

13

第一個版本按照您的預期工作,因爲程序包級ParseFiles函數將返回一個新模板,該模板具有第一個解析文件的名稱和內容。

但是,在第二種情況下,您要創建一個名爲"first"的模板,然後解析名爲"index.html"的模板。當您在"first"上撥打t.Execute時,它仍然是空的。

您可以修復由兩種問題:

  1. 使用template.New("index.html"),這樣的文件名,你分析下一個模板的名稱相匹配;
  2. 提供您想要明確執行的模板名稱t.ExecuteTemplate(w, "index.html", nil)