1

Rails で HTTP キャッシングを行う場合、一度は次を使用します:
fresh_when etag: @user, public: true

これに関する問題は、ページの html を変更すると、キャッシュされたページが無効になることです。そのため、何かを変更するたびにページ/etag を無効にする方法が必要です。

これを行う 1 つの方法は、デプロイメントの Etag busting に従って、デプロイするたびに RAILS_CACHE_ID を変更することです 。ただし、これを行うと、デプロイメントごとにすべてのページが期限切れになるため、すべての etag が発生します。

個々のページの個々のタグを期限切れにできるソリューションが必要です。

次のようなバージョンで独自の etag を生成できます: fresh_when etag: (@user.updated_at.to_s + "V1"), public: true

しかし、これは「Rails のやり方」とは思えません。もっとエレガントなソリューションはありますか?

4

2 に答える 2

1

この記事には対応するライブラリが更新されているため、構成でバージョンを設定するだけで済みます。https://github.com/n8/bust_rails_etagsの README を参照してください。

于 2013-01-15T08:29:02.707 に答える