Trong ứng dụng Compojure tôi đang làm việc, tôi có bộ điều hợp Ring/Jetty dựa trên ring-jetty-adapter, theo đó lập trình cấu hình Jetty để sử dụng một nội dung gzip động GzipHandler.
(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.)))))))
chức năng này có một trường hợp Server và handler nhẫn của tôi và đặt nó lên với một số bộ xử lý. Lưu ý rằng GzipHandler
là một số HandlerWrapper
, vì vậy, phải xử lý Ring (proxy) của tôi và ủy quyền cho nó. Tôi cũng thêm một trình xử lý ghi nhật ký sẽ được thực thi sau trình xử lý Ring (gzip-wrap).
Khám phá complete working version.