1

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

ここで何がスキップ/見逃されているのかわかりません。何かポインタはありますか?

4

1 に答える 1