Go 的 HTML 輸出解釋問題解釋
在 Go 中,透過 HTTP 發送 HTML 輸出有時會導致輸出被解釋為純文字。當回應缺少指定內容類型的適當標頭時,就會發生這種情況。
請考慮以下程式碼:
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 base.html 包含以下內容:
base.html
載入所提供的頁面時,您會發現 HTML 是逐字顯示的,而不是渲染的。這是因為回應缺少 Content-Type 標頭,應將其設為 text/html。
要解決此問題,您需要在執行範本之前新增以下行:
w.Header().Set("Content-Type", "text/html")
此標頭通知瀏覽器回應包含HTML 內容,允許其渲染HTML 因此。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3