Как мне установить HTTP -заголовки в приложении Ruby/Sinatra, размещенном на Heroku?
-
11-10-2019 - |
Вопрос
У меня есть рабочее приложение, базирующееся в Ruby и Sinatra, которое развернуто на Heroku.
Я хочу воспользоваться преимуществами кэширования HTTP, доступного на Heroku, в котором используется лак.
Я не уверен, какой лучший способ установить заголовки и правильный синтаксис.
Есть мысли о лучшем подходе и синтаксисе?
before do
headers "Content-Type" => "text/html; charset=utf8"
end
get '/' do
headers['Cache-Control'] = 'public, max-age=600'
# SOME STUFF HERE
haml :home, {:layout => :layout_minfooter}
end
Решение
Обычно динамически сгенерированные страницы не имеют кэширования, поэтому
response.headers['Cache-Control'] = 'public, max-age=300'
Заголовок - правая отправная точка.
Попробуйте использовать одну из служб в "Используйте веб-сервис«Чтобы увидеть, появляются ли они в заголовке HTTPD, отправленного обратно с вашего сайта.
Другие советы
Вы также можете получить доступ к полям заголовка объекта ответа с помощью этого синтаксиса:
response['Cache-Control'] = 'public, max-age=600'
В Синатре вы можете использовать cache_control
Метод:
get '/' do
# Cache for 24 hours
cache_control :public, max_age: 86400
# Your magic goes here
end