ドキュメント

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

Play は、レスポンスを gzip 圧縮するために使用できる gzip フィルターを提供します。

§gzip フィルターの有効化

gzip フィルターを有効にするには、application.conf にフィルターを追加します。

play.filters.enabled += "play.filters.gzip.GzipFilter"

§gzip フィルターの設定

gzip フィルターは、いくつかのチューニング設定オプションをサポートしており、application.conf から設定できます。使用可能な設定オプションについては、Play フィルターの reference.conf を参照してください。

§圧縮レベル

play.filters.gzip.compressionLevel を使用して圧縮レベルを設定できます。値は -1 から 9 の範囲で、java.util.zip.Deflater で定義されているセマンティクスに従います。たとえば、デフォルトの設定は -1 で、これはデフォルトの圧縮レベルであり、9最高の圧縮レベルです。例:

play.filters.gzip.compressionLevel = 9

§gzip 圧縮されるレスポンスの制御

application.conf を介して、コンテンツタイプに基づいて、どのレスポンスを gzip 圧縮するのか、しないのかを制御できます。

play.filters.gzip {

    contentType {

        # If non empty, then a response will only be compressed if its content type is in this list.
        whiteList = [ "text/*", "application/javascript", "application/json" ]

        # The black list is only used if the white list is empty.
        # Compress all responses except the ones whose content type is in this list.
        blackList = []
    }
}

より柔軟な代替手段として、gzip フィルター自体の shouldGzip パラメーターを使用できます。これは、リクエストヘッダーとレスポンスヘッダーの関数をブール値に変換するものです。

たとえば、以下のコードは HTML レスポンスのみを gzip 圧縮します。

Scala
new GzipFilter(
  shouldGzip =
    (request: RequestHeader, response: Result) => response.body.contentType.exists(_.startsWith("text/html"))
)
Java
GzipFilterConfig gzipFilterConfig = new GzipFilterConfig();
GzipFilter gzipFilter =
    new GzipFilter(
        gzipFilterConfig.withShouldGzip(
            (BiFunction<Http.RequestHeader, Result, Object>)
                (req, res) -> res.body().contentType().orElse("").startsWith("text/html")),
        materializer);

次へ: セキュリティヘッダーの設定


このドキュメントにエラーを発見しましたか?このページのソースコードは こちらにあります。ドキュメントガイドライン を読んでから、プルリクエストを送信してください。質問やアドバイスがありましたら、コミュニティフォーラム にアクセスしてコミュニティと会話してください。