Как мне установить HTTP -заголовки в приложении Ruby/Sinatra, размещенном на Heroku?

StackOverflow https://stackoverflow.com/questions/4199624

Вопрос

У меня есть рабочее приложение, базирующееся в 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top