class ActionDispatch::FileHandler

def try_precompressed_files(filepath, headers, accept_encoding:)

def try_precompressed_files(filepath, headers, accept_encoding:)
  each_precompressed_filepath(filepath) do |content_encoding, precompressed_filepath|
    if file_readable? precompressed_filepath
      # Identity encoding is default, so we skip Accept-Encoding
      # negotiation and needn't set Content-Encoding.
      #
      # Vary header is expected when we've found other available
      # encodings that Accept-Encoding ruled out.
      if content_encoding == "identity"
        return precompressed_filepath, headers
      else
        headers[ActionDispatch::Constants::VARY] = "accept-encoding"
        if accept_encoding.any? { |enc, _| /\b#{content_encoding}\b/i.match?(enc) }
          headers[ActionDispatch::Constants::CONTENT_ENCODING] = content_encoding
          return precompressed_filepath, headers
        end
      end
    end
  end
end