Как установить HTTP-заголовки в приложении Ruby/Sinatra, размещенном на Heroku?
У меня есть рабочее приложение, основанное на 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
3 ответов
обычно динамически генерируемые страницы не имеют кэширования, поэтому
response.headers['Cache-Control'] = 'public, max-age=300'
заголовок является правильной отправной точкой.
попробуйте воспользоваться одной из служб в "используйте веб-сервис " чтобы увидеть, появляются ли они в заголовке HTTPd, отправленном с вашего сайта.
вы также можете получить доступ к полям заголовка объекта response с помощью этого синтаксиса:
response['Cache-Control'] = 'public, max-age=600'
в Sinatra вы можете использовать cache_control
способ:
get '/' do
# Cache for 24 hours
cache_control :public, max_age: 86400
# Your magic goes here
end