我遇到了类似的问题.标准的Django方法是为经过身份验证的用户禁用缓存.
#settings.py
CACHE_MIDDLEWARE_ANONYMOUS_ONLY=True
Run Code Online (Sandbox Code Playgroud)
如果不同的用户看到不同的页面(例如:他们的用户名)并且您不能拥有一个版本,它可以正常工作.
但是,如果页面只有2个版本:对于经过身份验证的用户和其他用户,那么完全禁用经过身份验证的用户的缓存并不好.我写了一个应用程序,除此之外,还可以在这种情况下微调缓存.
更新.
顺便说一句:您提到当您点击"刷新"时,会收到正确版本的页面.这意味着问题是客户端缓存(Expires头或E-tag),而不是服务器缓存.
要防止客户端缓存(如果在同一URL下有多个版本的页面,则必须这样做)使用@cache_control(must_revalidate=True)装饰器.
| 归档时间: |
|
| 查看次数: |
665 次 |
| 最近记录: |