Блокирует Кэш HTML и Отображение Подкатегорий
Итак, я переместил свой магазин до версии 1.9.2.1, все выглядит хорошо, за исключением кэша HTML блоков.
Я постараюсь объяснить это как можно лучше.
У меня обычная настройка использования статического блока, вызывающего скрипт для отображения подкатегорий в родительской категории. Что-то похожее на этот учебник
Это всегда работало без каких-либо заминок...Пока я не обновился. Проблема, которую я вижу, заключается в том, что любые страницы категорий, использующие этот статический блок сценарий для отображения подкатегорий не работает, в результате чего все эти категории отображают одну и ту же кэшированную страницу подкатегорий. Это похоже на то, что это не повторное кэширование, а просто предоставление одного и того же контента на всех этих страницах. Это означает, что клиенты не могут перейти к правильным слоям сайта, потому что любая категория, использующая сценарий подкатегорий, увидит один и тот же кэшированный макет с неправильными подкатегориями.
Я запустил скрипт очистки Mage, чтобы сбросить любые странные проблемы с разрешениями, но безрезультатно. В качестве временного исправления, чтобы мои клиенты могли просматривать сайт, я отключил кэш HTML блоков, который сразу устраняет проблему. Таким образом, очевидно, что проблема заключается в том, что кэш неправильно обслуживает содержимое или фактически осознает, что требуется повторный кэш. Как мне это исправить? Существует ли более эффективный способ обслуживания подкатегорий в родительских категориях, в которых нет списка отдельных продуктов?
Вот код, который я использую для отображения подкатегорий в хорошая сетка (Прошлое):
<div class='category-grid'>
<?php
if($_collectionSize):
$i=0;
$layer = Mage::getSingleton('catalog/layer');
?>
<ul class="products-grid">
<?php
foreach ($_categories as $_category):
$layer->setCurrentCategory($_category);
$_category = Mage::getModel('catalog/category')->load($_category->getId());
$products = Mage::getModel('catalog/product')->getCollection()
->addCategoryFilter($_category)
->addAttributeToSort('price', 'asc')
->setPageSize(1)
->load();
$prod = $products->getFirstItem();
$lowestProductPrice = $taxHelper->getPrice($prod, $prod->getPrice(), true, null, null, null, null, false);
$formattedPrice = Mage::helper('core')->currency($lowestProductPrice, true, false);
//$originalCategory->getThumbnail();
$_img = ($_category->getThumbnail()) ? "/media/catalog/category/".$_category->getThumbnail() : "/media/placeholders/small.jpg";
$_img = Mage::getBaseUrl() . $_img;
?>
<li class="item <?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
<a href="<?php echo $_category->getUrl(); ?>" title="<?php echo $_category->getName(); ?>" class="product-image">
<?php if($_img):?>
<img src="<?php echo $_img; ?>" alt="<?php echo $_category->getName();?>" />
<?php else:?>
<?php echo $_category->getName();?>
<?php endif;?>
</a>
<div class="product-detail">
<h2 class="product-name"><a href="<?php echo $helper->getCategoryUrl($_category); ?>" title="<?php echo $this->stripTags($_category->getName(), null, true) ?>"><?php echo $_category->getName(); ?></a></h2>
</div>
</li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<p><?php echo $this->__('No categories found.'); ?></p>
<?php endif ?>
</div>
1 answers
Возможно, вы столкнулись с ошибкой кэша статических блоков, введенной в 1.9.2, хотя сообщалось, что она исправлена в 1.9.2.1. У меня все еще возникали проблемы с кэшированием статических блоков. Более подробная информация доступна здесь
Проблемы с отображением статических блоков Magento 1.9.2.0
Хорошим решением/обходным путем для этой ошибки является этот модуль