Кэширование в статичные файлы (зеркалирование)
Кэширование в статичные файлы предназначено для значительного уменьшения нагрузки на сервер при работе высоконагруженных сайтов. По мере посещения страниц сайта на сервере создается статичная копия, в результате чего доступ к страницам осуществляется практически мгновенно.
Информацию об управлении кэшированием в статичные файлы см. в разделе Закладка «Кэширование» в управлении сайтами.

Исключение страниц из кэша
Мы не рекомендуем кэшировать в статичные файлы частоизменяемые разделы и разделы с динамическим содержимым. Рекомендуется исключить их кэширования в статичные файлы следующие разделы:
- /users/*
- /forums/*
- /shop/cart/*
- /search/*
Игнорирование GET-параметров
Статичный кэш игнорирует GET-параметры, заданные в опции availableGetVariables конфигурационного файла ядра. Добавить собственные параметры, которые следует игнорировать, вы можете в bootstrap.php методами Cache_Static::ignoreQuery(string) для одного параметра:
Core::moduleIsActive('cache') && Cache_Static::ignoreQuery('parameter');
или методом Cache_Static::ignoreQueries(array) для нескольких параметров:
Core::moduleIsActive('cache') && Cache_Static::ignoreQueries(array('parameter', 'foo', 'bar'));
Внешнее управление возможностью кэшировать в статичные файлы
Вы можете выполнить собственные проверки и, при необходимости, запретить кэширование такой страницы одним из следующих вариантов:
1. Запрет через явное указание
Core_Page::instance()->staticCache(FALSE);
2. Использовать хук Core_Command_Controller_Default.onCheckCache, который если вернет FALSE, то кэширование не состоится.
* с версии 7.1.5.
Согласие с cookies
Мы рекомендуем сохранять согласие с cookies в куке _hccagree, при наличии этой куки статичный кэш не будет использоваться и будут отображаться страницы уже без выводимого согласия.
Особенности использования
Кэширование в статичные файлы используется только для неавторизированных посетителей.
Для обновления краткой корзины, в коде макета контроллеру показа корзины необходимо вызывать метод refreshLittleCart(), он динамически запросит актуальную корзину после отображения страницы, пример:
<?php
// Краткая корзина
if (Core::moduleIsActive('shop'))
{
$Shop_Cart_Controller_Show = new Shop_Cart_Controller_Show(
Core_Entity::factory('Shop', 1)
);
$Shop_Cart_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName('МагазинКорзинаКраткая')
)
->couponText(
Core_Array::get(Core_Array::getSession('hostcmsOrder', array()), 'coupon_text')
)
->show()
->refreshLittleCart();
}
?>