试图在django中实现静态文件的“远期到期日期”

时间:2009-08-27 21:18:07

标签: django yslow

我正在尝试使用远期未来的expires方法来减少我的网站的加载时间。

然而,当我在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表示,没有一个静态文件具有远期到期日期。有谁知道我做错了什么?

2 个答案:

答案 0 :(得分:3)

我不确定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>

答案 1 :(得分:0)

将此行添加到您的conf:

FileETag none

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