2008-10-23 6 views
3

J'utilise Mongrel :: DirHandler pour contrôler les en-têtes de réponse pour les fichiers statiques - cela fonctionne très bien sur ma machine dev. Ma machine de production utilise Passenger pour que mes en-têtes ne soient pas réglés. Comment contrôler les en-têtes pour les fichiers statiques lors de l'utilisation de Passenger?Mongrel :: équivalent DirHandler pour Passager

extrait de mon environment.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 

Répondre

2

Puisque vous utilisez Passager, je suppose que vous êtes en apache, de sorte que votre demande ne passe pas par Mongrel plus. Si c'est le cas, vous pouvez établir des règles sur le fichier .htaccess dans le répertoire public de votre application.

Here's an explination on how to do it.

Questions connexes