"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > My Go HTML 출력이 일반 텍스트로 표시되는 이유는 무엇입니까?

My Go HTML 출력이 일반 텍스트로 표시되는 이유는 무엇입니까?

2024년 11월 24일에 게시됨
검색:971

Why is My Go HTML Output Displayed as Plain Text?

Go의 HTML 출력 해석 문제 설명

Go에서 HTTP를 통해 HTML 출력을 보내면 출력이 일반 텍스트로 해석되는 경우가 있습니다. 이는 응답에 콘텐츠 유형을 지정하는 적절한 헤더가 없을 때 발생합니다.

다음 코드를 고려하세요.

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이 렌더링되는 대신 그대로 표시되는 것을 볼 수 있습니다. 이는 응답에 text/html로 설정되어야 하는 Content-Type 헤더가 없기 때문입니다.

이 문제를 해결하려면 템플릿을 실행하기 전에 다음 줄을 추가해야 합니다.

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

이 헤더는 응답에 HTML 콘텐츠가 포함되어 있음을 브라우저에 알리고 HTML을 렌더링할 수 있도록 합니다. 그에 따라.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3