2013-08-26 90 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)