"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que a saída HTML do My Go é exibida como texto simples?

Por que a saída HTML do My Go é exibida como texto simples?

Publicado em 2024-11-24
Navegar:584

Why is My Go HTML Output Displayed as Plain Text?

Explicado o problema de interpretação da saída HTML do Go

No Go, o envio da saída HTML via HTTP às vezes pode resultar na interpretação da saída como texto simples. Isso ocorre quando a resposta não possui os cabeçalhos apropriados especificando o tipo de conteúdo.

Considere o seguinte código:

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 

Com base.html contendo o seguinte:



    
        base.html
    

Ao carregar a página veiculada, você observará que o HTML é exibido literalmente em vez de ser renderizado. Isso ocorre porque a resposta não possui o cabeçalho Content-Type, que deve ser definido como text/html.

Para resolver esse problema, você precisa adicionar a seguinte linha antes de executar o modelo:

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

Este cabeçalho informa ao navegador que a resposta contém conteúdo HTML, permitindo que ele renderize o HTML adequadamente.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3