代码之家  ›  专栏  ›  技术社区  ›  Mridang Agarwalla

在Django中缓存静态文件

  •  4
  • Mridang Agarwalla  · 技术社区  · 14 年前

    我使用谷歌的Firebug页面速度插件来分析我的Web应用程序的性能,它说的一件事是我应该“利用缓存”,以下可缓存资源的新鲜寿命很短。为以下资源指定至少一周的过期时间”。当我深入挖掘时,我发现所有对DjangoWSGi服务器的静态文件请求都缺少 Expires 以及 Cache-Control 标题。如果Django要添加这些头,应该由谁添加?如果是这样,怎么办?

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  7
  •   Deniz Dogan    14 年前

    您页面上的任何静态文件都应该由您的Web服务器提供服务,例如Apache。除非您必须阻止某些人访问某些文件,否则django不应参与其中。

    在这里, I found an example of how to do it :

    # our production setup includes a caching load balancer in front.
    # we tell the load balancer to cache for 5 minutes.
    # we can use the commented out lines to tell it to not cache,
    # which is useful if we're updating.
    <FilesMatch "\.(html|js|png|jpg|css)$">
    ExpiresDefault "access plus 5 minutes"
    ExpiresActive On
    #Header unset cache-control:
    #Header append cache-control: "no-cache, must-revalidate"
    </FilesMatch>