我正在尝试使用 Google Cloud CDN 来缓存 Django 响应。Django 将缓存控制标头正确设置为最大年龄,但它缺少标头的“公共”部分。
基本上,目前所有缓存的视图都有:
cache-control: max-age=3600
但我想要:
cache-control: max-age=3600,public
编辑:我当前的 settings.py 有以下缓存:
MIDDLEWARE = [
...
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
...
]
....
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_SECONDS = 3600
CACHE_MIDDLEWARE_KEY_PREFIX = ''
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": os.environ.get('CACHE_URL'),
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"IGNORE_EXCEPTIONS": True,
"MAX_ENTRIES": 10000,
}
}
}
所以我基本上遵循了 https://docs.djangoproject.com/en/3.1/topics/cache/。所以我缓存了整个网站。对于那些我不想缓存的视图,我使用@never_cache
.
编辑 2:我可以将“public=True”添加到每个带有注释的视图中,但我想要整个站点的解决方案。