"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi la sortie HTML My Go est-elle affichée sous forme de texte brut ?

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

Publié le 2024-11-24
Parcourir:404

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 :

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 

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



    
        base.html
    

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 contient pas 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 :

w.Header().Set("Content-Type", "text/html")

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

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3