プレーン テキストとしての予期しない HTML 出力
よくある誤解は、HTML 出力が HTML として受信されるのではなくプレーン テキストとして解釈される場合に発生します。この問題は、Go の HTTP ハンドラーのデフォルト動作の誤解が原因です。
提供されたコード サンプルでは、リクエスト ハンドラーはポート 9999 で「base.html」という名前の HTML テンプレートを生成して表示するように構成されています。 、ページをロードすると、HTML マークアップがフォーマット済みのブロック内にそのまま表示されます。この予期しない結果は、テンプレートがサーバーによってプレーン テキストとしてレンダリングされていることが原因です。
この問題を修正するには、HTTP 応答の Content-Type ヘッダーを明示的に設定して、出力がクライアントに通知する必要があります。 HTMLです。これにより、ブラウザが HTML コンテンツを解釈して適切にレンダリングできるようになります。
次の変更により問題が解決されます。
<code class="go">requestHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // Set the Content-Type header w.Header().Set("Content-Type", "text/html") t := template.New("test") t, _ := template.ParseFiles("base.html") t.Execute(w, "") })</code>
この変更を実装した後、HTML テンプレートがレンダリングされ、ブラウザ内で期待どおりに表示されます。
以上がGo で HTML 出力がプレーン テキストとして表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。