Documentation

§gzip エンコーディングの設定

Play は gzip レスポンスに使われる gzip フィルタを備えています。

§gzip フィルタの有効化

gzip フィルタを有効にするには、build.sbt 内の libraryDependencies に Play filters プロジェクトを追加してください:

libraryDependencies += filters

ここで、この filters に gzip フィルタを追加しますが、通常これはプロジェクトルートに Filters クラスを作成することで実現します:

Scala
import javax.inject.Inject

import play.api.http.HttpFilters
import play.filters.gzip.GzipFilter

class Filters @Inject() (gzipFilter: GzipFilter) extends HttpFilters {
  def filters = Seq(gzipFilter)
}
Java
import play.api.mvc.EssentialFilter;
import play.filters.gzip.GzipFilter;
import play.http.HttpFilters;

import javax.inject.Inject;

public class Filters implements HttpFilters {

    @Inject
    GzipFilter gzipFilter;

    public EssentialFilter[] filters() {
        return new EssentialFilter[] { gzipFilter };
    }
}

Filters クラスはルートパッケージに置くか、もし違う名前にする、あるいは違うパッケージに置く場合は、application.conf 内で play.http.filters を使って設定する必要があります:

play.http.filters = "filters.MyFilters"

§gzip フィルタの設定

gzip フィルタは、わずかながら application.conf で設定できるチューニング設定オプションをサポートしています。利用できる設定オプションは、Play フィルタの reference.conf を参照してください。

§gzip されるレスポンスの管理

レスポンスが gzip されるか否かを操作するには、リクエストヘッダとレスポンスヘッダから真偽値を返す関数を受け取る shouldGzip パラメータを使います。

例えば、以下のコードは HTML レスポンスのみ gzip します:

new GzipFilter(shouldGzip = (request, response) =>
  response.headers.get("Content-Type").exists(_.startsWith("text/html")))

Next: セキュリティヘッダの設定


このドキュメントの翻訳は Play チームによってメンテナンスされているものではありません。 間違いを見つけた場合、このページのソースコードを ここ で確認することができます。 ドキュメントガイドライン を読んで、お気軽にプルリクエストを送ってください。