Кеширование статических файлов в Django - PullRequest
4 голосов
/ 21 октября 2010

Я профилировал производительность своего веб-приложения, используя плагин Google Page Speed ​​для Firebug, и одна из вещей, которые он говорит, заключается в том, что я должен «использовать кэширование» - «Следующие кэшируемые ресурсы имеют короткий срок действия свежести. Укажите срок действия накак минимум одну неделю в будущем для следующих ресурсов ».Когда я начал копать глубже, я обнаружил, что во всех запросах статических файлов на сервер Django WSGI отсутствовали заголовки Expires и Cache-Control.Кто должен добавить эти заголовки - должен ли Django это сделать?Если да, то как?

Спасибо.

1 Ответ

7 голосов
/ 21 октября 2010

Любые статические файлы, которые вы можете иметь для своей страницы, должны обслуживаться вашим веб-сервером, например Apache. Django никогда не должен участвовать, если вам не нужно запретить доступ к некоторым файлам определенным людям.

Здесь Я нашел пример того, как это сделать :

# 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...