今天在使用Django的缓存时发现一个问题,在对多个站点使用per view cached的时候,
site1.com的首页会和site2.com的首页发生混淆,访问site2.com的时候 可能会变成site1.com
从uwsgi supervisor几个地方找了很久也没找到问题在哪里
最后确定问题出现在缓存上
由于使用的是同一个virtualenv下的Django,所以应该是memcached key的问题
最开始在Django的文档上找到要在settings.py中设置CACHE_MIDDLEWARE_KEY_PREFIX变量
但那只对per site cached起作用 对per site cached会报错
之后又看到了per view cache 的key_prefix参数,需添加这个参数 才不会引起缓存冲突
如:
@cache_page(60 * 15, key_prefix="site1")
def my_view(request):
...