Кэширование на уровне сайта Django
Проще всего кэшировать сайт целиком. Для этого в параметр
MIDDLEWARE_CLASSES необходимо добавить строки ‘django.middleware.cache. UpdateCacheMiddleware’ и ‘django.middleware.cache.FetchFromCacheMiddleware’, например:
MIDDLEWARE_CLASSES = (
‘django.middleware.cache.UpdateCacheMiddleware’. ‘ django. middleware.common.CommonMiddleware’. ‘django.middleware.cache.FetchFromCacheMiddleware’.
)
Примечание ———————————————————————————-
Это не опечатка: класс «update» должен быть первым, а класс «fetch» последним. Причина нетривиальна, интересующимся рекомендуем прочитать раздел «Порядок строк в MIDDLEWARE_CLASSES» в конце главы.
Затем включите в файл с настройками следующие обязательные параметры:
• CACHE_MIDDLEWARE_SECONDS: сколько секунд страница должна храниться в кэше.
• CACHE_MIDDLEWARE_KEY_PREFIX: если на одном сервере под управлением одной инсталляции Django работает несколько сайтов с общим кэшем, то укажите в этом параметре имя сайта или еще какую-нибудь строку, уникальную для данного экземпляра Django, чтобы предотвратить коллизии ключей. Если это в вашем случае не важно, задайте пустую строку.
Кэшированию подвергаются все страницы, для которых в запросе GET или POST нет параметров. Если при этом необязательный параметр САСНЕ_ MIDDLEWARE_AN0NYM0US_0NLY имеет значение True, то кэшируются только запросы от анонимных посетителей. Это простой и эффективный способ отключить кэширование персонализированных страниц (в том числе страниц административного интерфейса). Отметим, что при использовании параметра CACHE_MIDDLEWARE_AN0NYM0US_0NLY необходимо активировать также дополнительный процессор AuthenticationMiddleware.
Кроме того, дополнительные процессоры кэширования автоматически включают в каждый объект HttpResponse следующие заголовки:
• Заголовок Last-Modified, содержащий дату и время запроса актуальной (не кэшированной) версии страницы.
• Заголовок Expires, содержащий текущие дату и время плюс значение параметра CACHE_MIDDLEWARE_SECONDS.
• Заголовок Cache-Control, содержащий максимальный срок хранения страницы, также вычисляемый на основе параметра САСНЕ_ MIDDLEWARE_SECONDS.
Примечание —————————————————————————-
О дополнительных процессорах см. главу 17.
Если некоторое представление самостоятельно устанавливает срок хранения (то есть значение параметра тах-аде в заголовке Cache-Control), то страница кэшируется на этот срок, а не на CACHE_MIDDLEWARE_SECONDS секунд. Декораторы из модуля django.views.decorators.cache позволяют без труда изменить срок хранения (декоратор cache_control) или вообще отключить кэширование представления (декоратор never_cache). Дополнительные сведения об этих декораторах см. в разделе «Управление кэшем: другие заголовки».
Источник: Головатый А., Каплан-Мосс Дж. Django. Подробное руководство, 2-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2010. - 560 е., ил.
Похожие посты:
- Индексирование содержимого (0)
- Базовый анализ поисковых запросов (0)
- Структурирование схемы контента (0)
- Указание поисковой системе Google на связи между блоками (0)
- Демонстрация поисковой системе Google целой страницы (0)
- Информирование поисковой системы Google о подборках страниц (0)
- Как избежать неинформативности (0)