我在使用Django缓存中间件时遇到问题。我想缓存一个昂贵的页面,这样就不需要为每个访问者重新生成它。
似乎SessionMiddleware正在设置" Vary:Cookie"在响应标题中。这指示缓存中间件在构建缓存密钥时包含cookie,这意味着缓存在用户会话中不是全局的。
我的MIDDLEWARE_CLASSES设置为:
MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.http.ConditionalGetMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'users.middleware.ConcurrentUserSessionMiddleware',
'session_security.middleware.SessionSecurityMiddleware',
)
在UpdateCacheMiddleware之前移动SessionMiddleware似乎可以解决问题。但是,这个问题表明这是错误的顺序: Practical rules for Django MiddleWare ordering?
任何想法我做错了什么?