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> <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>
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!