Заставить Mongrel / WEBRick обслуживать статические активы с будущим заголовком expires - PullRequest
4 голосов
/ 11 марта 2011

Я создаю приложение Rails, которое будет развернуто на настольных компьютерах с веб-сервером и браузером (это тестовое приложение, которое должно работать без подключения к Интернету).

По этой причине я буду использовать Mongrel или WEBRick без Apache / Nginx, как вы это обычно делаете.Браузер получит прямой доступ к Mongrel.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что загрузка ресурсов (javascript / stylesheets / images) занимает некоторое время.Обычно я исправляю это, устанавливая будущие даты истечения срока действия для этих активов в прокси-сервере Apache перед Mongrel / WEBRick, чтобы активы запрашивались только один раз, а после этого для каждого действия требуется только один запрос.

Но в этом случае прокси не существует, и я использую config.serve_static_assets = true

Так что вопрос: можно ли сказать Mongrel / WEBrick, чтобы шлепать заголовки истечения срока давности на статическиеassets?

Я использую Rails 3 на Ruby 1.9.2.

1 Ответ

1 голос
/ 25 марта 2011

вы можете попробовать что-то вроде этого:

   def get(path)
     @headers['Content-Type'] = MIME_TYPES[path[/\.\w+$/, 0]] || "text/plain"
     unless path.include? ".." # prevent directory traversal attacks
       @headers['X-Sendfile'] = "#{PATH}/static/#{path}"
     else
       @status = 403 # "403 - Invalid path"
     end
   end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...