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

问题描述 投票:0回答:1

我正在使用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应用程序,所以我必须坚持使用这个工作模型。

django caching flush
1个回答
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实例的端口是什么。

© www.soinside.com 2019 - 2024. All rights reserved.