【问题标题】:Trying to implement "far-future expiration date" for static files in django尝试在 django 中为静态文件实现“遥远的到期日期”
【发布时间】:2009-08-27 21:18:06
【问题描述】:

我正在尝试使用远期过期方法来缩短我网站的加载时间。

但是,当我在 Firefox 中访问静态文件时,服务器仍然响应 HTTP/1.x 304 NOT MODIFIED。如果文件被缓存,甚至不应该发出请求吗?

这是我为 apache 2.2 提供的相关 httpd.conf 行:

LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so

<FilesMatch "\.(ico|pdf|flv|jpe?g|png|gif|js|css|swf)$">
ExpiresActive On
ExpiresDefault "access plus 1 year" </FilesMatch>

YSlow 表示所有静态文件都没有一个遥远的到期日期。有谁知道我做错了什么?

【问题讨论】:

    标签: django yslow


    【解决方案1】:

    我不确定ExpiresActive On 是否属于 FilesMatch 指令。我已经实现了很多相同的东西,我把它放在外面。

    从文档看来,它不属于那里:

    http://publib.boulder.ibm.com/httpserv/manual60/mod/mod_expires.html#expiresactive

    我在包含静态文件的目录上设置了 expires 标头:

    ExpiresActive On
    <Directory /path/to/static/files>
        ExpiresDefault "access plus 6 months"
        Header append Cache-Control public
    </Directory>
    

    【讨论】:

      【解决方案2】:

      将此行添加到您的配置文件中:

      FileETag none
      

      (尽管确保它仅适用于您的静态文件,因为 etag 仍可能对您的动态 Django 视图有用)

      【讨论】:

      • 谢谢,试过了,但似乎并没有改变行为。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      相关资源
      最近更新 更多