Сбой динамического кэширования страниц в Rails 5 - PullRequest
0 голосов
/ 13 февраля 2019

Я обновляю сайт с rails 4.2 до 5.1

В предыдущей настройке у меня было кэширование страницы в сгенерированной таблице стилей (для каждого арендатора), все отлично работает.

После обновления до5.1 это больше не работает

Использование последней версии actionpack-page_caching

Контроллер для таблицы стилей, которая кэшируется, выглядит следующим образом:

class StylesheetsController < ApplicationController
  caches_page :show, gzip: true

  def show
    @stylesheet = Stylesheet.find(params[:id])
    respond_to do |format|
      format.html
      format.css { render text: @stylesheet.contents, content_type: "text/css" }
    end
  end
end

Я получаюследующая ошибка в журналах:

ActionView::MissingTemplate - Missing template stylesheets/show, application/show with {:locale=>[:en], :formats=>[:css], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby]}. Searched in:

Физического шаблона для этого не существует, так как я отрисовываю его непосредственно из модели таблицы стилей.Подтвердили, что модель возвращает данные.

Кэширование включено в разработке.

На странице макета ссылка на динамическую таблицу стилей:

<link href="<%= dynamic_stylesheet %>.css" rel="stylesheet" type="text/css" />

и помощникМетод (в application_helper):

def dynamic_stylesheet
  stylesheet_path(current_account.stylesheet) unless current_account&.stylesheet&.id.nil?
end

Я не уверен, что здесь пропускается / пропускается, какие-нибудь указатели?

1 Ответ

0 голосов
/ 18 марта 2019

Хорошо для всех, кто сталкивается с этим - проблема небольшого изменения в Rails 5 с рендерингом текста, в приведенном выше примере с контроллером оно должно теперь выглядеть так:

format.css { render plain: @stylesheet.contents, content_type: "text/css" }

Нашел здесь Что использовать вместо `render: text` (и` render ничего: true`) в рельсах 5.1 и новее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...