У меня есть проблема, которая, кажется, связана с кэшированием статических блоков CMS.
У меня есть страница CMS и на этой странице я рендеринг нескольких статических блоков CMS. Упрощенная версия содержимого страницы CMS выглядит следующим образом:
<div class="cms-block-1">{{block type="cms/block" block_id="banner_home"}}</div>
<div class="cms-block-2">{{block type="cms/block" block_id="promo_home_1_1"}}</div>
<div class="cms-block-3">{{block type="cms/block" block_id="promo_home_1_2"}}</div>
<div class="cms-block-4">{{block type="cms/block" block_id="promo_home_2_1"}}</div>
<div class="cms-block-5">{{block type="cms/block" block_id="promo_home_2_2"}}</div>
<div class="cms-block-6">{{block type="cms/block" block_id="promo_home_2_3"}}</div>
<div class="cms-block-7">{{block type="cms/block" block_id="promo_home_3_1"}}</div>
<div class="cms-block-8">{{block type="cms/block" block_id="promo_home_3_2"}}</div>
Страница загружается, как и ожидалось, сразу после очистки кэша блоков, эта страница выглядит примерно так:
<div class="cms-block-1">banner content</div>
<div class="cms-block-2">promo_home_1_1 content</div>
<div class="cms-block-3">promo_home_1_2 content</div>
<div class="cms-block-4">promo_home_2_1 content</div>
<div class="cms-block-5">promo_home_2_2 content</div>
<div class="cms-block-6">promo_home_2_3 content</div>
<div class="cms-block-7">promo_home_3_1 content</div>
<div class="cms-block-8">promo_home_3_1 content</div>
Однако после начальной загрузки страницы, каждая последующая загрузка страницы некорректна. Это выглядит так:
<div class="cms-block-1">banner content</div>
<div class="cms-block-2">promo_home_1_1 content</div>
<div class="cms-block-3">promo_home_1_2 content</div>
<div class="cms-block-4">promo_home_1_1 content</div>
<div class="cms-block-5">promo_home_1_2 content</div>
<div class="cms-block-6">promo_home_2_1 content</div>
<div class="cms-block-7">promo_home_2_2 content</div>
<div class="cms-block-8">promo_home_2_3 content</div>
Во втором примере вы можете видеть, что первые два промо являются правильными, однако все после этого отображает неправильный контент для block_id. Кроме того, блоки promo_home_1_1 и promo_home_1_2 визуализируются дважды, а promo_home_3_1 и promo_home_3_2 никогда не визуализируются. Это похоже на то, как отображение между block_id и связанным с ним статическим содержимым блока каким-то образом смешивается. Это связано с кэшированием, как если бы кеш блоков не был включен, то я больше не вижу проблемы.
Также, вероятно, стоит отметить, что эта страница работала на EE 1.13, однако после обновления до EE 1.14.2 эта проблема начала возникать.
Я понимаю, что довольно сложно сказать, что не так, не зная, что еще происходит в системе, но я надеюсь, что кто-то мог бы дать мне хоть какое-то направление, поскольку у меня заканчиваются идеи.
Обновить:
Я также попробовал это с виджетами, например
<div class="cms-block-1">{{widget type="cms/widget_block" template="cms/widget/static_block/default.phtml" block_id="63"}}</div>
<div class="cms-block-2">{{widget type="cms/widget_block" template="cms/widget/static_block/default.phtml" block_id="64"}}</div>
<div class="cms-block-3">{{widget type="cms/widget_block" template="cms/widget/static_block/default.phtml" block_id="65"}}</div>
В этом случае все 3 блока вернули одинаковое содержимое, хотя идентификаторы указывают на разные блоки в базе данных. Когда кеш очищается, возвращаемый блок иногда будет меняться, но все три виджета будут по-прежнему иметь одинаковое содержимое.