【发布时间】:2015-05-25 16:01:05
【问题描述】:
是否可以针对特定的文件扩展名全局修改WEBrick HTTP 响应标头,例如提供具有svgz 扩展名的所有文件以包含 HTTP 标头“内容-Encoding: gzip" 在 HTTP 响应中?我似乎无法弄清楚如何做到这一点。
【问题讨论】:
标签: ruby-on-rails webrick
是否可以针对特定的文件扩展名全局修改WEBrick HTTP 响应标头,例如提供具有svgz 扩展名的所有文件以包含 HTTP 标头“内容-Encoding: gzip" 在 HTTP 响应中?我似乎无法弄清楚如何做到这一点。
【问题讨论】:
标签: ruby-on-rails webrick
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
config/application.rb
config.autoload_paths += Dir["#{config.root}/lib/**/"]
config.middleware.insert_before("ActionDispatch::Static", "Dps::Compression")
【讨论】: