【问题标题】:Django web application and ways to flush cached mediaDjango Web 应用程序和刷新缓存媒体的方法
【发布时间】:2014-07-13 07:49:58
【问题描述】:

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

我在浏览器中删除了 cookie,但运气不佳。我正在使用火狐。

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

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

我还使用以下方法重新启动了 memcached 服务器:

service memcached restart.

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

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

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

【问题讨论】:

    标签: django caching flush


    【解决方案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 实例的端口是什么。

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2017-12-30
      • 2017-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多