templates - Golang 新模板不起作用

标签 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 模板中的分隔符值,并希望制作模板,更改分隔符值,然后解析文件。

还有其他人有这个问题吗?

最佳答案

第一个版本可以正常工作,因为包级别的 ParseFiles 函数将返回一个新模板,其中包含第一个解析文件的名称和内容。

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

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

  1. 使用template.New("index.html"),让文件名与你接下来解析的模板名匹配;
  2. 使用 t.ExecuteTemplate(w, "index.html", nil) 提供要显式执行的模板名称

关于templates - Golang 新模板不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18436543/

相关文章:

c++ - 部分模板实例化

go - Kafka Golang 客户端无法连接到 Message Hub 服务

go - 我如何捕获 netcat 反向 shell?

docker - 使用 Go 模板获取 docker 镜像路径的最后一个元素

c++ - 将数据类型作为字符串放入模板参数中 - C++

c++ - 标量类型的特征模板

c++ - 是否有从其他模板参数推导出来的强制模板参数之类的东西?

go - 如何处理Go源文件中在函数之外声明的值的错误

Golang : Installation directory error?

c++ - 如何编写采用通用 C++ 标准库容器的模板函数