Rumah >pembangunan bahagian belakang >Golang >Mengapa Pergi Hantar Output HTML sebagai Teks Biasa dalam Templat?
Go HTML Output as Plain Text
Pertimbangkan persediaan kod berikut:
<code class="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())
The "base.html " fail mengandungi HTML berikut:
<code class="html"><!DOCTYPE html> <html> <body> base.html </body> </html></code>
Setelah menjalankan pelayan dan menavigasi ke halaman, HTML daripada templat dipaparkan secara verbatim, disertakan dalam
teg dan pembungkus dokumen baharu.</p> <p>Sebab tingkah laku ini terletak pada ketiadaan pengepala "Jenis Kandungan" untuk respons. Secara lalai, Go menganggap output sebagai teks biasa. Untuk membetulkan ini, tambah baris berikut sebelum melaksanakan templat:</p> <pre class="brush:php;toolbar:false"><code class="go">w.Header().Set("Content-Type", "text/html")</code>
Dengan pelarasan ini, penyemak imbas akan mentafsirkan output sebagai HTML dengan betul dan menjadikannya sesuai.
Atas ialah kandungan terperinci Mengapa Pergi Hantar Output HTML sebagai Teks Biasa dalam Templat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!