-2

1 つのコントローラー (のみ) について、Rails キャッシュ ロジックの外部で生成された ETag 値を使用し、304-vs-200 応答を自分で管理したいと考えています。ETag ヘッダーを設定するために私が行うことは何もないようです。

response.etag = myEtag
headers['ETag'] = myEtag
render :text => myText, :etag => myEtag

Rails は常に独自のバージョンを使用します。

ActionControllerアプリ全体でキャッシュを無効にできることはわかっていますが、それは望ましくありません。1 つのサブクラスの応答でオーバーライドしたいだけです。

4

2 に答える 2

0

fresh_whenなどは私のニーズに完全には適合しませんでした-私の場合、解決策はキャッシングを拒否することでした

def caching_allowed?
  false
end

次に、応答にメンバーだけを設定します。オプションのいずれかを設定すると、Rails が MD5 All The Things になるようです。headers['ETag'].etag

于 2012-05-14T16:39:33.597 に答える