С django-compress
вы рассматриваете CSS и JS как динамические файлы - это нормально. Тем не менее, другие файлы являются статическими - и Django не хочет их обслуживать. Они должны обслуживаться непосредственно Apache или другим веб-сервером.
С Apache вы бы поместили что-то вроде
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
</FilesMatch>
in .htaccess
или глобальная конфигурация Apache.
Обновление: Ответ на ваш комментарий - Извините, я не понял нюанс вашего вопроса. Вы ничего не можете сделать, чтобы избежать использования другого URL-адреса для указания клиенту, что файл (например, изображение) изменился. Это рекомендуется, например, Apache и YAHOO!
Реализация этого ИМО не слишком сложна. Он состоит из двух частей:
- Используйте тег (вот полезный фрагмент ) для создания версионных URL-адресов медиафайлов, которые появятся в вашем HTML. Версионный URL-адрес может быть базовым URL-адресом со вставленной версией, например,
/media/3/header.png
, где фактический файл остается на сервере как /media/header.png
.
- Используйте инструмент, подобный
mod_rewrite
, для преобразования входящих URL-адресов в каноническое значение, то есть запрос на /media/3/header.png
преобразуется в /media/header.png
. Эта статья описывает функцию более подробно.