Question

J'utilise Mongrel :: DirHandler pour contrôler les en-têtes de réponse des fichiers statiques - cela fonctionne très bien sur ma machine de développement. Ma machine de production utilise Passager pour que mes en-têtes ne soient pas configurés. Comment contrôler les en-têtes des fichiers statiques lorsque j'utilise Passenger?

extrait de mon environnement.rb:

if defined? Mongrel::DirHandler
  module Mongrel
    class DirHandler
      def send_file_with_expires(req_path, request, response, header_only=false)

        if req_path =~ /((\/images)|javascripts|stylesheets)/
          response.header['Cache-Control'] = 'max-age=315360000'
          response.header['Expires'] = (Time.now + 10.years).rfc2822
        else
          response.header["Last-Modified"] = Time.now.httpdate
          response.header["Expires"] = 0
          # HTTP 1.0
          response.header["Pragma"] = 'no-cache'
          # HTTP 1.1 ‘pre-check=0, post-check=0′ (IE specific)
          response.header["Cache-Control"] = 'no-store, no-cache, must-revalidate, max-age=0, pre-check=0, post-check=0'
        end

        send_file_without_expires(req_path, request, response, header_only)
      end
      alias_method :send_file_without_expires, :send_file
      alias_method :send_file, :send_file_with_expires
    end
  end
end
Était-ce utile?

La solution

Puisque vous utilisez Passenger, je suppose que vous êtes sous Apache. Votre requête ne passe donc plus par Mongrel. Si tel est le cas, vous pouvez établir des règles sur le fichier .htaccess dans le répertoire public de votre application.

Voici une explication sur la façon de le faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top