Как установить 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