Unerwartete HTML-Ausgabe als einfacher Text
Ein häufiges Missverständnis entsteht, wenn HTML-Ausgaben als einfacher Text interpretiert und nicht als HTML empfangen werden. Dieses Problem ist auf ein Missverständnis im Standardverhalten des HTTP-Handlers von Go zurückzuführen.
Im bereitgestellten Codebeispiel ist ein Anforderungshandler so konfiguriert, dass er eine HTML-Vorlage mit dem Namen „base.html“ an Port 9999 generiert und anzeigt Beim Laden der Seite erscheint das HTML-Markup wörtlich in einem vorformatierten Block. Dieses unerwartete Ergebnis ist darauf zurückzuführen, dass die Vorlage vom Server als einfacher Text gerendert wird.
Um dieses Problem zu beheben, muss der Content-Type-Header der HTTP-Antwort explizit festgelegt werden, um den Client über die Ausgabe zu informieren ist HTML. Dadurch wird sichergestellt, dass der Browser den HTML-Inhalt interpretieren und entsprechend rendern kann.
Die folgende Änderung sollte das Problem beheben:
<code class="go">requestHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // Set the Content-Type header w.Header().Set("Content-Type", "text/html") t := template.New("test") t, _ := template.ParseFiles("base.html") t.Execute(w, "") })</code>
Nach der Implementierung dieser Änderung sollte die HTML-Vorlage gerendert werden und wird wie erwartet im Browser angezeigt.
Das obige ist der detaillierte Inhalt vonWarum wird meine HTML-Ausgabe in Go als einfacher Text angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!