djangoのデフォルトである "no-store"の代わりに、キャッシュコントロールを高い数値にしたいとします。Djangoでは、すべてのテンプレートレンダリングに対して自動的に「キャッシュコントロール」を設定できますか?
多少グローバルに設定できますか?
djangoのデフォルトである "no-store"の代わりに、キャッシュコントロールを高い数値にしたいとします。Djangoでは、すべてのテンプレートレンダリングに対して自動的に「キャッシュコントロール」を設定できますか?
多少グローバルに設定できますか?
えっとキャッシュ「サイトごとに」設定する方法がある...私はこのことについて注意が必要だろう。テンプレートは各要求に対して処理されます。あなたはキャッシュされていないと思っています。データは変わる可能性があります。
ありがたいことに、Djangoはキャッシングを提供しています。私はそれがno-cacheを適切に設定するかどうかはわかりませんが、必要のない繰り返しのクエリは間違いなく防止されます。これはあなたが使いたいと思うものです。 http://docs.djangoproject.com/en/dev/topics/cache/
上に読む
あなたは(未テスト、このようなものから始めて、docsを見て)カスタムミドルウェアを書くことができます。例えば、宝くじ結果や歴史的な株価などの静的な情報を提供するサイトのネットワークリソースを大幅に節約することができます。
# my_middleware.py
from django.conf import settings
# default 30 days
MAX_AGE = getattr(settings, 'CACHE_CONTROL_MAX_AGE', 2592000)
class MaxAgeMiddleware(object):
def process_response(self, request, response):
response['Cache-Control'] = 'max-age=%d' % MAX_AGE
return response
settings.py MIDDLEWARE_CLASSESであなたのミドルウェアを追加。ミドルウェアはタマネギのようなものです - 順序問題は、応答フェーズの最初のものは最後に処理されます。
CACHE_CONTROL_MAX_AGEまたは他のパラメータを設定し、試してください。