Rails 4ではページキャッシュとアクションキャッシュが削除されて以来、Rails 4で変数を持たず、ビュー内にhtmlしか持たないアクションをキャッシュする方法は何ですか?私はビュー内の静的なHTMLをキャッシュする必要がありますか?有効期限を設定するモデルがない場合、どのようにetag/fresh_whenを設定するのですか?私は、キャッシュする最も簡単なページであるべきものをキャッシングするための例やコンベンションを見つけるのに苦労しています。Rails 4の静的アクションのキャッシング/ Etag 4
ビューは完全に静的ですが、ユーザーがサインインしているかどうかによってページにはダイナミックナビゲーションバーが表示されます。このような静的なページを処理するには、アクションキャッシュに頼らずに削除されていて、慣例がgemのバージョンを使用しないように設定されているからです。
例:
class HomesController < ApplicationController
def index
end
end
家/ index.html.erb
<div>A bunch of normal html tags with no erb</div>
編集:は@ SEVERINの答えと私自身の研究に基づいて、ここで私が出ているものです これまでのところ。また
class HomesController < ApplicationController
def index
fresh_when(["some-identifier", current_user, flash])
end
end
ビューがが展開する間に変更されている可能性があるため、私が展開した後、すべてのetagsをリセットするためにhttps://github.com/n8/bust_rails_etagsを使用しています。私はこれがかなり好都合にカバーしていると思いますが、私はまだ新鮮であるかどうか、自動的にビューについての何らかの識別子を含めるかどうか、そして「何らかのidnetifier」が必要かどうか不思議です。 current_userとflashがnilになることがありますか?
今、静的コンテンツをキャッシュするフラグメントの2番目のポイントです。私は私がやった場合と仮定しています:
cache "v1" do
all my html
end
私はページが私のアプリは、古いコンテンツを提供するだろうそうでない場合は変更されたときに、常にキャッシュ識別子を変更してくださいする必要があると思います。これを自動化する方法もあれば、すでにレールで処理している方法もありますか?ビューが更新された最後の時間や賢明なものをキャッシュするだけでいいので、静的なコンテンツが変更されたときに追跡する必要はありません。
私は私の答えであなたの質問の第2部に答えました。不明な点がある場合やその他のご質問がある場合は、お気軽にお問い合わせください:) – severin