Rails с Alchemy - правильно установлен заголовок Cache-Control - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть приложение с Devise и Alchemy CMS, и когда я вхожу, кнопка «Войти» должна измениться на «Выход», но это не так.Я думаю, что HTTP-кэширование включено.Если я выхожу из системы, меня перенаправляют на домашнюю страницу, и в заголовке запроса я вижу это:

/ users / sign_out

Status Code: 302
cache-control:no-cache

, но если я перехожу на другую страницу, кнопка по-прежнемуговорит "Выйти".Если я обновляю домашнюю страницу, я вижу это в шапке:

/

Request Method:GET
Status Code:200  (from disk cache)
cache-control:public
last-modified:Mon, 17 Dec 2018 19:32:08 GMT

Если я захожу и перехожу на другую страницу, на кнопке появляется надпись «Вход».В шапке я вижу это:

/ some / other / url

Request Method:GET
Status Code:200  (from disk cache)
cache-control:public
last-modified:Mon, 17 Dec 2018 19:32:08 GMT

Есть ли способ, которым я мог бы это исправить?

1 Ответ

0 голосов
/ 18 декабря 2018

Мне пришлось обновить до 4.0-stable, что добавляет must_revalidate к заголовкам и переписать render_fresh_page? метод https://github.com/AlchemyCMS/alchemy_cms/blob/4.0-stable/app/controllers/alchemy/pages_controller.rb#L192

, чтобы это выглядело так:

app / controllers / alchemy/pages_controller_extension.rb

Alchemy::PagesController.class_eval do
  def render_fresh_page?
    flash.present? || !@page.cache_page? || stale?(etag: page_etag,
      last_modified: @page.published_at,
      public: !@page.restricted,
      template: 'pages/show')
  end
end
...