2012-04-13 88 views

回答

4

在我正在開發的Compojure應用程序中,我有一個基於ring-jetty-adapter的Ring/Jetty適配器,它以編程方式將Jetty配置爲使用GzipHandler動態地對內容進行gzip。

(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.))))))) 

此功能需要一個Server實例和我的戒指處理程序,並與一些處理程序對其進行設置。需要注意的是GzipHandlerHandlerWrapper,所以需要我(代理)環處理,並委託給它。我還添加了一個日誌處理程序,它將在(gzip-wrapped)環處理程序之後執行。

查看complete working version

相關問題