为什么django-compressor在使用memcached时仍然输出文件?

时间:2012-10-11 22:31:09

标签: django-compressor

即使启用了Memcached,django-compressor仍然在COMPRESS_ROOT文件夹中输出压缩文件是否正确?

在文档中说:

  

对于生产站点,强烈建议使用真正的缓存后端(例如memcached)来加速对压缩文件的检查。

我在Django中的缓存设置正确且有效。

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211',
        }
}

我所看到的是,启用memcached后,如果删除STATIC_ROOT文件夹,django-compressor将不再重新生成js / css文件。其他人看到这个bahaviour?

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。为了解决这个问题,我在我的django应用程序中创建了一个小的django管理命令,以清除我在部署期间运行的内存缓存。

我想如果你依赖memcache做很多事情,你可能想要更细粒度,但是为了我们吹走整个缓存是好的。

代码如下:

from django.core.cache import cache

from django.core.management.base import BaseCommand, CommandError 
import getpass

class Command(BaseCommand):   help = 'Flush the memcache (or whatever the default caching system is)'

  def handle(self, *args, **options):
    if ("flush_all" in dir(cache._cache)):
      cache._cache.flush_all()
      print "Cache Flush Done."
    else:
      print "No-op ... this cache type has no flush"