配置 gzip 编码
Play 提供一个gzip过滤器,可以用于gzip响应。
启用 gzip 过滤器
要启用gzip过滤器, 添加Play 过滤器项目到你的build.sbt
中的libraryDependencies
项:
libraryDependencies += filters
现在添加gzip filter到你的过滤器, 通常是在你的项目根目录下创建一个Filters
类:
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)
}
Filters
类可以放在根包或在其它位置,如果它有另一个名字或在其它包, 需要在application.conf
使用play.http.filters
配置:
play.http.filters = "filters.MyFilters"
配置 gzip 过滤器
gzip过滤器支持少量的调整配置选项, 可以在application.conf
配置。要查看有效的配置选项, 参阅 Play 过滤器reference.conf
。
控制哪个响应被 gzipped
要控制哪个响应是否执行, 使用shouldGzip
参数, 接受一个请求标头函数和一个响应标头到一个布尔值。
举例, 下面的代码是仅 gzips HTML 响应:
new GzipFilter(shouldGzip = (request, response) =>
response.headers.get("Content-Type").exists(_.startsWith("text/html")))