Heim > Backend-Entwicklung > Golang > Warum sendet Go HTML-Ausgaben als einfachen Text in einer Vorlage?

Warum sendet Go HTML-Ausgaben als einfachen Text in einer Vorlage?

Barbara Streisand
Freigeben: 2024-10-28 06:53:29
Original
1080 Leute haben es durchsucht

Why Does Go Send HTML Output as Plain Text in a Template?

HTML-Ausgabe als Nur-Text ausführen

Berücksichtigen Sie die folgende Codeeinrichtung:

<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())
Nach dem Login kopieren

Die Datei „base.html "-Datei enthält den folgenden HTML-Code:

<code class="html"><!DOCTYPE html>
<html>
    <body>
        base.html
    </body>
</html></code>
Nach dem Login kopieren

Beim Ausführen des Servers und Navigieren zur Seite wird der HTML-Code aus der Vorlage wörtlich angezeigt, eingeschlossen in

 Tags und ein neuer Dokument-Wrapper.</p>
<p>Der Grund für dieses Verhalten liegt im Fehlen eines „Content-Type“-Headers für die Antwort. Standardmäßig behandelt Go die Ausgabe als einfachen Text. Um dies zu korrigieren, fügen Sie die folgende Zeile hinzu, bevor Sie die Vorlage ausführen:</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><code class="go">w.Header().Set("Content-Type", "text/html")</code>
Nach dem Login kopieren

Mit dieser Anpassung interpretiert der Browser die Ausgabe korrekt als HTML und rendert sie entsprechend.

Das obige ist der detaillierte Inhalt vonWarum sendet Go HTML-Ausgaben als einfachen Text in einer Vorlage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage