Maison > développement back-end > Golang > le corps du texte

Pourquoi la sortie HTML My Go est-elle affichée sous forme de texte brut ?

DDD
Libérer: 2024-10-29 20:39:29
original
439 Les gens l'ont consulté

Why is My Go HTML Output Displayed as Plain Text?

Le problème d'interprétation de la sortie HTML de Go expliqué

Dans Go, l'envoi d'une sortie HTML via HTTP peut parfois entraîner l'interprétation de la sortie comme du texte brut. Cela se produit lorsque la réponse ne dispose pas des en-têtes appropriés spécifiant le type de contenu.

Considérez le code suivant :

<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())
Copier après la connexion

Avec base.html contenant les éléments suivants :

<code class="html"><DOCTYPE html>
<html>
    <body>
        base.html
    </body>
</html></code>
Copier après la connexion

Lorsque vous chargez la page servie, vous remarquerez que le HTML est affiché textuellement au lieu d'être rendu. En effet, la réponse ne dispose pas de l'en-tête Content-Type, qui doit être défini sur text/html.

Pour résoudre ce problème, vous devez ajouter la ligne suivante avant d'exécuter le modèle :

<code class="go">w.Header().Set("Content-Type", "text/html")</code>
Copier après la connexion

Cet en-tête informe le navigateur que la réponse contient du contenu HTML, lui permettant de restituer le HTML en conséquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal