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

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-28 06:53:29985Durchsuche

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())

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

<code class="html"><!DOCTYPE html>
<html>
    <body>
        base.html
    </body>
</html></code>

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>
<pre class="brush:php;toolbar:false"><code class="go">w.Header().Set("Content-Type", "text/html")</code>

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!

Stellungnahme:
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