阻止HTML缓存和子类别显示
-
13-12-2019 - |
题
所以我将我的商店移动到1.9.2.1,除了块HTML缓存外,一切都很好看。
我会尽力解释这一点。
我有使用静态块调用脚本来在父类别中显示子类别的常规设置。 类似于本教程的东西
它始终工作,没有任何搭便车...直到我升级。我看到的问题是,使用此静态块脚本显示子类别的任何类别页面都会失败,从而导致显示相同缓存的子类别页面的所有这些类别。这就像它没有重新缓存,只是向所有这些页面均为相同的内容。这意味着客户无法导航到站点的正确层,因为使用子类别脚本的任何类别都会看到与子类别不正确的缓存布局。
我已经运行了一个Mage Cleanup脚本来重置任何奇怪的权限问题,但无济于事。作为一个临时修复,所以我的客户实际上可以浏览网站,我已经禁用了块HTML缓存,这将立即修复问题。因此,清楚地区问题是与缓存没有正确汇复内容,也是实际上,意识到需要重新缓存。我如何解决这个问题?是否有更有效的方式在没有列表单个产品的父类别中为父类别提供服务?
这是我正在使用的代码在漂亮的网格中显示子类别 ( pastbin ):
<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.9.2引入的静态块缓存错误,但报告为1.9.2.1修复,我仍然经历过静态块的缓存问题。这里有更多信息