HTML输出被解释为纯文本,而不是被接收为html

问题描述 投票:4回答:1

我确定这只是我正在做的愚蠢的事情,但是我是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发送,以便浏览器可以正确呈现它?当然,这肯定是一个简单的误解,但搜索没有任何结果。想法?

我确定这只是我正在做的愚蠢的事情,但是我是Go的新手,所以不确定这是怎么回事。我有以下基本设置。 requestHandler:= http.HandlerFunc(func(w http.ResponseWriter,...

html templates go plaintext
1个回答
8
投票

您需要添加带有Content-Type的标题

© www.soinside.com 2019 - 2024. All rights reserved.