Golang新模板无法工作

11

当我运行:

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个回答

19

第一个版本按照你的期望工作,因为包级别的ParseFiles函数将返回一个新的模板,该模板具有第一个解析文件的名称和内容。

然而在第二种情况中,你创建了一个名为"first"的模板,然后解析了一个名为"index.html"的模板。当你在"first"上调用t.Execute时,它仍然是空的。

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

  1. 使用template.New("index.html"),这样文件名与你下次解析的模板名称相匹配;
  2. 使用t.ExecuteTemplate(w, "index.html", nil)显式地提供你想要执行的模板名称。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接