当我跑步时:
t, _ := template.ParseFiles("index.html")
t.Execute(w, nil)
页面加载正常。 但是当我尝试运行时
t := template.New("first")
t, _ = t.ParseFiles("index.html")
t.Execute(w, nil)
唯一加载的是空白页面。 我试图更改Golang html模板中的分隔符值,并希望制作模板,更改分隔符值,然后解析文件。
有其他人有这个问题吗?
答案 0 :(得分:17)
第一个版本按预期工作,因为包级ParseFiles
函数将返回一个新模板,其中包含第一个已解析文件的名称和内容。
但是,在第二种情况下,您将创建一个名为"first"
的模板,然后解析名为"index.html"
的模板。当您在t.Execute
上致电"first"
时,它仍然是空的。
您可以通过以下方式解决问题:
template.New("index.html")
,以便文件名与您接下来解析的模板名称相匹配; t.ExecuteTemplate(w, "index.html", nil)