2

Rails で静的アセットを提供しています。それらのほとんどは名前にハッシュが含まれており、遠い将来の有効期限が設定されています。しかし、1 つのファイルについては、名前にハッシュを付けて提供することはできないため、有効期限を制御する必要があります。

すべての静的アセットに適用される application.rb にこれがあります。

config.static_cache_control = "public, max-age=2592000"

1 つのファイルだけに別の max-age を設定する方法はありますか? ActionDispatch::Static特定のファイルの値を後で変更する新しいミドルウェアを作成できることはわかっています (この記事を参照)...しかし、これは、静的アセットではないものであっても、すべての単一の要求に対して実行されます。よりエレガントなソリューションはありますか?

4

1 に答える 1

0

悪いテクニックは、route.rb内のファイルのURLを修正することです。必要なcache_controlを修正するこのルートへのコントローラーを定義し、send_dataメソッドを使用してファイルをサーバー化できます。

于 2012-04-04T08:14:18.123 に答える