У мене є проблема, яка, схоже, пов’язана з кешуванням статичних блоків 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 блоки повернули один і той же вміст, хоча ідентифікатори вказують на різні блоки бази даних. Коли очищається кеш-пам'ять, повертається блок інколи зміниться, але всі три віджети все одно матимуть однаковий вміст.