新しいことをやってみるシリーズ:Play Framework2.3.2でGoogle HTML Compressorを使ってみる

htmlのファイルサイズを圧縮する方法としてはGzip化する方法と、htmlから無駄なスペースなどを無くす方法とがあるかと思います。

Play Frameworkではhtmlから無駄なスペースを無くす方法として使われるGoogle HTML Compressorのプラグインがあるので、この方法を使ってhtmlのサイズを小さくしてみます。

https://github.com/mohiva/play-html-compressor

のプラグインを利用します。

build.sbt

libraryDependencies ++= Seq(

"com.mohiva" %% "play-html-compressor" % "0.3"
)

を追加します。

app/Global.java

import play.api.mvc.EssentialFilter;
import com.mohiva.play.htmlcompressor.java.HTMLCompressorFilter;

public class Global extends GlobalSettings {
    /**
     * Get the filters that should be used to handle each request.
     */
    @SuppressWarnings("unchecked")
    public <T extends EssentialFilter> Class<T>[] filters() {
        return new Class[]{HTMLCompressorFilter.class};
    }

}

コンパイルし直します。

activator compile

Eclipseのクラスパスも変更しておきます。

activator eclipse

 するとどうでしょう、



<!DOCTYPE html>
<html>
    <head>
        <title>Welcome to Play</title>
        <link rel='stylesheet' href='/webjars/bootstrap/3.2.0/css/bootstrap.min.css'>
        <link rel="shortcut icon" type="image/png" href="/assets/images/favicon.png">
        <link rel="stylesheet" href="/assets/stylesheets/main.min.css">
    </head>
    <body>
        
<h1>Your new application is ready.</h1>


        <script type='text/javascript' src='/webjars/jquery/1.11.1/jquery.min.js'></script>
        <script type='text/javascript' src='/webjars/bootstrap/3.2.0/js/bootstrap.min.js'></script>
        <script type='text/javascript' src="/assets/javascripts/main.js"></script>
    </body>
</html>

だったhtmlが

<!DOCTYPE html>
<html>
<head>
<title>Welcome to Play</title>
<link rel='stylesheet' href='/webjars/bootstrap/3.2.0/css/bootstrap.min.css'>
<link rel="shortcut icon" type="image/png" href="/assets/images/favicon.png">
<link rel="stylesheet" href="/assets/stylesheets/main.min.css">
</head>
<body>
<h1>Your new application is ready.</h1>
<script type='text/javascript' src='/webjars/jquery/1.11.1/jquery.min.js'></script>
<script type='text/javascript' src='/webjars/bootstrap/3.2.0/js/bootstrap.min.js'></script>
<script type='text/javascript' src="/assets/javascripts/main.js"></script>
</body>
</html>

のようになります。

 

https://github.com/YoshiteruIwasaki/sample-play-java-app/commit/1d3da7a80652a2d49065c27662689fabbc71220f