WEBrick基于每个文件扩展名更改HTTP响应标头

时间:2015-05-25 16:01:05

标签: ruby-on-rails webrick

是否可以针对特定文件扩展名全局修改WEBrick HTTP响应标头,例如,提供扩展名为svgz所有文件以包含HTTP标头“ HTTP响应中的内容编码:gzip “?我似乎无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

<强> LIB / DPS / compression.rb

module Dps 
  class Compression
    def initialize(app)  
      @app = app  
    end  

    def call(env)  
      status, headers, response = @app.call(env)
      if File.extname(env['REQUEST_URI']) == ".svgz" && status == 200 
        headers["Content-Encoding"] = "gzip"
      else
        nil 
      end 
      [status, headers, response]
    end  
  end 
end

<强>配置/ application.rb中

config.autoload_paths += Dir["#{config.root}/lib/**/"]
config.middleware.insert_before("ActionDispatch::Static", "Dps::Compression")