Попытка реализовать «дату истечения срока давности» для статических файлов в Django - PullRequest
2 голосов
/ 28 августа 2009

Я пытаюсь использовать метод истечения далекого будущего, чтобы сократить время загрузки моего сайта.

Однако, когда я получаю доступ к статическим файлам в Firefox, сервер по-прежнему отвечает HTTP / 1.x 304 НЕ ИЗМЕНЕНО. Запрос не должен даже быть сделан, если файлы кэшируются правильно?

Вот соответствующие строки httpd.conf, которые у меня есть для apache 2.2:

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 ]

3 голосов
/ 28 августа 2009

Я не уверен, принадлежит ли 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>
0 голосов
/ 28 августа 2009

Добавьте эту строку в ваш conf:

FileETag none

(хотя убедитесь, что это только для ваших статических файлов, потому что etag может быть полезен для ваших динамических представлений Django)

...