3 Stimmen

Mongrel::DirHandler-Äquivalent für Passenger

Ich verwende Mongrel::DirHandler, um Antwort-Header für statische Dateien zu steuern - das funktioniert auf meinem Entwicklungsrechner hervorragend. Meine Produktionsmaschine verwendet Passenger, so dass meine Header nicht gesetzt werden. Wie kann ich die Header für statische Dateien kontrollieren, wenn ich Passenger verwende?

Schnipsel aus meiner 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

2voto

changelog Punkte 4626

Da Sie Passenger verwenden, nehme ich an, dass Sie unter Apache laufen, so dass Ihre Anfrage nicht mehr über Mongrel läuft. Wenn dem so ist, können Sie Regeln für die .htaccess Datei innerhalb der public Verzeichnis Ihrer Anwendung.

Hier ist eine Erklärung, wie man es macht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X