我相信这只是我做的一些愚蠢的事情,但我是Go的新手,所以不确定发生了什么。我有以下基本设置。
requestHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
t := template.New("test")
t, _ := template.ParseFiles("base.html")
t.Execute(w, "")
})
server := &http.Server{
Addr: ":9999",
Handler: requestHandler,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
log.Fatal(server.ListenAndServe())
base.html的内容如下:
<DOCTYPE html>
<html>
<body>
base.html
</body>
</html>
当我运行服务器并加载页面时,我看到模板中的HTML原样显示 - 而不是解释后的版本。 原来,模板被包装在 pre 标签中,并随后被包装在一个新文档中。
那么发生了什么? 为什么go默认将其视为纯文本而不是以html形式发送,以便浏览器可以正确呈现它? 这肯定是一个简单的误解,但在搜索中没有找到任何东西。 有什么想法吗?
!
,这就是为什么它会以纯文本形式呈现:<!DOCTYPE html>
。 - elithrar