因此,我们已将“最近浏览过的”模块放入我们的产品视图中。一切看起来都很好,但我现在看到奇怪的错误,这与空布局有关。如果我关闭缓存工作正常,但启用完整页面缓存失败时调用$ this-> getColumnCount();在模板中。Magento:将“最近浏览”移动到产品页面会产生奇怪的缓存错误
我所做的产品页面上启用最近查看的是:
在catalog_product_view的内容块内的catalog.xml:
<block type="reports/product_viewed" name="reports.product.viewed" as="recently_viewed" template="reports/product_viewed.phtml">
<action method="setColumnCount"><columns>4</columns></action>
<action method="setItemLimit"><type>recently_viewed</type><limit>4</limit></action>
</block>
在模板文件
:目录/产品/图一个.phtml:
<?php echo $this->getChildHtml('recently_viewed') ?>
一切加载罚款的第一次,但当时如果我在其他产品视图中单击,然后重新加载页面的错误它出来。我将错误追溯到类:Mage_Page_Helper_Layout。
功能getCurrentPageLayout(),有一行:
$this->getLayout()->getBlock('root')
和$这个 - > getLayout被返回null这将导致getBlock调用抛出异常。
如果我禁用缓存没有错误出现,一切工作正常。
的是,在企业版?如果你看看'app/code/core/Enterprise/PageCache/etc/cache.xml',它似乎提供了一个解决方案,但我不熟悉该功能或它的工作原理。 – clockworkgeek 2010-10-18 19:41:18
是它的企业版。感谢指针。我正在研究该代码,但似乎无法完全关闭该块的缓存。即使我将cache_lifetime设置为1,它仍然给我相同的错误,并且如果我从cache.xml中取出该xml块,它只会无限期地缓存该页面,并且在我单击其他项目时不会更新。 – GeekPride 2010-10-18 22:14:10