class Middleman::Rack
def send_file(resource, env)
def send_file(resource, env) file = ::Rack::Files.new nil path = resource.file_descriptor[:full_path].to_s if !file.respond_to?(:path=) request = ::Rack::Request.new(env) response = file.serving(request, path) else file.path = path response = file.serving(env) end status = response[0] response[1]['content-encoding'] = 'gzip' if %w(.svgz .gz).include?(resource.ext) # Do not set content-type if status is 1xx, 204, 205 or 304, otherwise # Rack will throw an error (500) if !(100..199).cover?(status) && ![204, 205, 304].include?(status) response[1]['content-type'] = resource.content_type || 'application/octet-stream' end halt response end