私が取り組んでいる Compojure アプリには、ring-jetty-adapterに基づく Ring/Jetty アダプターがあり、 GzipHandlerを使用してコンテンツを動的に gzipするように Jetty をプログラムで構成します。
(defn- configurator [server ring-handler]
(.setHandler server
(doto (new HandlerCollection)
(.addHandler (doto (new GzipHandler)
(.setHandler (proxy-handler ring-handler))
(.setMimeTypes "text/html,text/plain,text/xml,application/xhtml+xml,text/css,application/javascript,text/javascript,image/svg+xml")))
(.addHandler (doto (new RequestLogHandler) (.setRequestLog (NCSARequestLog.)))))))
この関数は、サーバーインスタンスとリング ハンドラーを受け取り、いくつかのハンドラーを設定します。GzipHandler
は であるHandlerWrapper
ため、(プロキシされた) Ring ハンドラーとデリゲートを使用することに注意してください。(gzip でラップされた) Ring ハンドラーの後に実行されるロギング ハンドラーも追加します。
完全な作業バージョンをチェックしてください。