私はすでにcontest-encodingの値を設定していますが、ファイルはまだ大きいので、どのようにテンプレートをgzipできますか?golang webでテンプレートをgzipする方法
func indexPageHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Encoding", "gzip")
r.Header.Set("Accept-Encoding", "gzip")
tmpl, err := template.New("index.html").ParseGlob("./templates/*")
if err != nil {
log.Println(err)
return
}
err = tmpl.Execute(w, nil)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
レスポンスをgzipすることができます任意の関数があります]アドバイスが続く
、私はこのように私のコードを変更:?
func indexPageHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Encoding", "gzip")
r.Header.Set("Accept-Encoding", "gzip")
gz := gzip.NewWriter(w)
defer gz.Close()
tmpl, err := template.New("index.html").ParseGlob("./templates/*")
if err != nil {
log.Println(err)
return
}
err = tmpl.Execute(gz, nil)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
しかし、私は、URLのクエリを実行したときに、私だけgzipファイルをダウンロードしてください。どうしたの?
特に大きなものは、ハンドラ内のテンプレートを解析しないでください。詳細については、[テンプレート]パッケージを使用してgolangのクライアントに動的Webページを生成するには時間がかかる](http://stackoverflow.com/a/28453523/1705598) – icza
@iczaこれはグローバル変数ではない。 .jsファイルと.cssファイルが大きすぎるため、ブラウザがWebコンテンツをダウンロードするのに時間がかかりすぎる。 – Wyatt