Go が HTML 出力をテンプレート内のプレーン テキストとして送信するのはなぜですか?

Barbara Streisand
リリース: 2024-10-28 06:53:29
オリジナル
998 人が閲覧しました

Why Does Go Send HTML Output as Plain Text in a Template?

プレーン テキストとして HTML 出力を実行する

次のコード設定を検討してください。

<code class="go">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 << 20,
}

log.Fatal(server.ListenAndServe())
ログイン後にコピー

「base.html」 " ファイルには次の HTML が含まれています:

<code class="html"><!DOCTYPE html>
<html>
    <body>
        base.html
    </body>
</html></code>
ログイン後にコピー

サーバーを実行してページに移動すると、テンプレートの HTML が

 で囲まれてそのまま表示されます。タグと新しいドキュメント ラッパー。</p>
<p>この動作の理由は、応答に "Content-Type" ヘッダーが存在しないことにあります。デフォルトでは、Go は出力をプレーンテキストとして扱います。これを修正するには、テンプレートを実行する前に次の行を追加します:</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><code class="go">w.Header().Set("Content-Type", "text/html")</code>
ログイン後にコピー

この調整により、ブラウザーは出力を HTML として正しく解釈し、適切にレンダリングします。

以上がGo が HTML 出力をテンプレート内のプレーン テキストとして送信するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!