Golang新模板不起作用

时间:2013-08-26 04:18:17

标签: templates go

当我跑步时:

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

页面加载正常。 但是当我尝试运行时

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

唯一加载的是空白页面。 我试图更改Golang html模板中的分隔符值,并希望制作模板,更改分隔符值,然后解析文件。

有其他人有这个问题吗?

1 个答案:

答案 0 :(得分:17)

第一个版本按预期工作,因为包级ParseFiles函数将返回一个新模板,其中包含第一个已解析文件的名称和内容。

但是,在第二种情况下,您将创建一个名为"first"的模板,然后解析名为"index.html"的模板。当您在t.Execute上致电"first"时,它仍然是空的。

您可以通过以下方式解决问题:

  1. 使用template.New("index.html"),以便文件名与您接下来解析的模板名称相匹配;
  2. 使用t.ExecuteTemplate(w, "index.html", nil)
  3. 提供要明确执行的模板名称