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