Mongrel :: DirHandler эквивалент для пассажира - PullRequest
3 голосов
/ 23 октября 2008

Я использую Mongrel :: DirHandler для управления заголовками ответов для статических файлов - это прекрасно работает на моей машине разработчика. Моя производственная машина использует Passenger, поэтому мои заголовки не устанавливаются. Как управлять заголовками для статических файлов при использовании Passenger?

фрагмент из моего окружения. 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

1 Ответ

2 голосов
/ 23 октября 2008

Поскольку вы используете Passenger, я предполагаю, что вы находитесь под Apache, поэтому ваш запрос больше не проходит через Mongrel. Если это так, вы можете установить правила для файла .htaccess в каталоге public вашего приложения.

Вот объяснение, как это сделать.

...