CMS statik bloklarının önbelleğe alınması ile ilgili bir sorun var.
Bir cms sayfa var ve bu sayfa içinde cms statik bloklar bir dizi render. CMS sayfa içeriğinin basitleştirilmiş bir sürümü şöyle görünür:
<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>
Blok önbellek temizlendikten hemen sonra sayfa beklendiği gibi yüklenir, bu sayfa şöyle görünür:
<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>
Ancak, başlangıçtaki sayfa yüklendikten sonra, sonraki her sayfa yükleme içeriği yanlış olur. Şöyle görünüyor:
<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>
İkinci örnekte ilk iki promosyonun doğru olduğunu görebilirsiniz, ancak bundan sonraki her şey block_id için yanlış içerik gösteriyor. Ayrıca, promo_home_1_1 ve promo_home_1_2 bloklarının her ikisi de iki kez oluşturulur ve promo_home_3_1 ve promo_home_3_2 asla oluşturulmaz. Block_id ve ilişkili statik blok içeriği arasındaki eşleme bir şekilde karıştırılıyor. Bu, önbellek engelleme etkin değilse blok önleme ile ilgilidir, o zaman artık sorunu görmüyorum.
Ayrıca, muhtemelen bu sayfanın EE 1.13 üzerinde çalıştığını belirtmek gerekir, ancak EE 1.14.2'ye yükselttikten sonra bu sorun ortaya çıkmaya başlamıştır.
Sistemde başka neler olup bittiğini bilmeden neyin yanlış olduğunu söylemek oldukça zor ama fikirlerin tükenirken birinin burada en azından biraz daha yön verebileceğini umuyorum.
Güncelleme:
Bunu widget'larla da denedim, örn.
<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>
Bu durumda, kimlikler veritabanındaki farklı bloklara işaret etseler bile 3 bloğun tümü aynı içeriği döndürdü. Önbellek temizlendiğinde, döndürülen blok bazen değişecektir, ancak üç widget'ın tümü de aynı içeriğe sahip olacaktır.