«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему HTML-вывод My Go отображается в виде обычного текста?

Почему HTML-вывод My Go отображается в виде обычного текста?

Опубликовано 24 ноября 2024 г.
Просматривать:215

Why is My Go HTML Output Displayed as Plain Text?

Объяснение проблемы интерпретации вывода HTML в Go

В Go отправка вывода HTML через HTTP может иногда приводить к тому, что вывод интерпретируется как открытый текст. Это происходит, когда в ответе отсутствуют соответствующие заголовки, определяющие тип контента.

Рассмотрите следующий код:

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 

С base.html, содержащим следующее:



    
        base.html
    

Когда вы загружаете обслуживаемую страницу, вы заметите, что HTML отображается дословно, а не отображается. Это связано с тем, что в ответе отсутствует заголовок Content-Type, который должен иметь значение text/html.

Чтобы решить эту проблему, перед выполнением шаблона необходимо добавить следующую строку:

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

Этот заголовок сообщает браузеру, что ответ содержит содержимое HTML, что позволяет ему отображать HTML соответственно.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3