Django Web应用程序和刷新缓存媒体的方法

时间:2014-07-13 07:49:59

标签: django caching flush

我正在使用Django构建的Web应用程序。它已经部署并运行了一段时间。现在我必须对JS文件和CSS文件进行一些更改。进行更改后,我无法看到应用程序中反映的更改。如果我浏览它们,我也无法看到这些文件中的更新代码。虽然我可以在服务器上看到更新的文件。

我在浏览器中删除了cookie而没有任何运气。我正在使用firefox。

我还使用以下建议代码清除了django缓存:

from django.core.cache import cache
cache._cache.flush_all()

我还使用:

重新启动了memcached服务器
service memcached restart.

我使用Centos作为服务器端操作系统。

我需要寻找缓存刷新的其他哪些方面?

我注意到的另一件事:它会在6个多小时后自动刷新几个小时。我上传的一个文件差不多12个小时了,现在我可以看到变化了。我必须在实时环境中对这些文件进行频繁更改,但这实际上阻止了我前进。我不允许在我的本地环境中提取整个Web应用程序,因此我必须坚持使用这种工作模式。

1 个答案:

答案 0 :(得分:1)

冲洗可以通过以下方式完成:

python3 manage.py clear_cache

您可能还需要收集和压缩静态文件,以及清除Django的静态文件缓存:

python3 manage.py collectstatic --noinput --clear
python3 manage.py compress --force

这必须以具有部署目录权限的用户身份完成,以便为Django提供服务的Web服务有权阅读这些内容。

Django缓存文件通常可以在以下目录中看到:

.../static/CACHE/css/
.../static/CACHE/js/

旁注:

如果系统具有netcat,则可以更好地刷新memcached而不重新启动它,因为您说您正在更改生产环境。显然,你的情况并不理想,但除此之外。如果有人进入页面时Django可能无法使用缓存,则抛出internal server error (500)

echo 'flush_all' | netcat localhost 11211

或者memcached实例的端口是什么。