2016-06-19 8 views
0

私はtornado.web.StaticFileHandlerクラスを持っています。これは静的なコンテンツを扱うために使用されます。画像がブラウザにキャッシュされていて、画像の変更が気付かれないことに気付きました。画像が更新されたときにブラウザに知らせるために、画像にtest.jpg?<file modifier>フラグを追加する解決策を見ました。残念ながら私はたくさんの画像を扱っており、このフラグを追加するのは高価になります。ブラウザがどのくらいの期間コンテンツをキャッシュするべきかを示すHTTPリクエストのヘッダーを変更するもう1つの方法があります。誰も私が静的ファイルハンドラを使ってTornadoでこれを行う方法を知っていますか?Tornado:キャッシュのためのヘッダーの設定

また、この静的ファイルハンドラは、.cssファイルや.jsファイルなどの他のコンテンツを処理します。特定のコンテンツのキャッシングを変更する方法はありますか、別の静的ファイルハンドラを設定して別の方法で設定する必要がありますか?ノートの

**また、画像は変更がコンテンツを提供しているプロセスによってピックアップされていない理由を私は疑う別のトルネードプロセスによって変更されていることである....

答えて

2

のサブクラスを書きますget_cache_timeをオーバーライドして0を返すStaticFileHandler。これは、file.jpg?v=random-idのようにアクセスされる静的ファイルに対して10年間のキャッシュ時間を返す、Tornadoのデフォルト動作を防ぎます。

get_cache_time引数(パス、修正、MIME_TYPE)を無視して、ただ返す0

、機能がget_cache_timeは(パス、修正、MIME_TYPE)
+0

おかげでジェシーですが、ドキュメントは、すべての引数がない状態を意味してん。あなたは知っていますか? –

+1

私の答えを編集しました。あなたが好きなら、0を返す前に、パス、ファイルの変更日、mime_typeを分析することができますが、ゼロを返すだけのように思えます。 いつも、ソースを読んで、引数の意味を知ることができます: https://github.com/tornadoweb/tornado/blob/master/tornado/web.py#L2388 –

関連する問題