画像だけキャッシュを無効化できるかな

Djangoでは画像などの静的ファイルに関してもキャッシュを制御するために、cache_control デコレータを利用できます。cache_page と同様に、cache_control デコレータもビューに適用することができますが、静的ファイルに特定のキャッシュ設定を適用するのが一般的です。

以下は cache_control デコレータの例です。この例では、no-cache を使用しています。

python
from django.views.decorators.cache import cache_control @cache_control(no_cache=True, must_revalidate=True, max_age=0) def my_image_view(request): # 画像を処理するロジックを追加 # ... # レスポンスを返す return HttpResponse(image_data, content_type="image/jpeg")

このようにして、特定のビューで静的ファイル(画像など)のキャッシュを無効化できます。no_cache=True はキャッシュを無効化し、must_revalidate=True はリソースが期限切れの場合にサーバーに再検証を要求します。

ただし、これにより全てのクライアントが毎回画像を再ダウンロードすることになるため、パフォーマンスに影響があるかもしれません。データが頻繁に変更される場合にのみ使用することを検討してください。

未分類

Posted by ぼっち