我要求我要在产品详情页面和产品视图页面上禁用某些类别的缓存 我已经搜索了这个,但我没有找到任何相关的答案,这可能在magento吗? 我试过list.phtml和view.phtml文件
答案 0 :(得分:0)
您可以覆盖该块并设置一个非常低或错误的cache_lifetime。
例如,您可以将块复制到本地名称空间。例如,如果要在导航块上禁用缓存,则可以复制
app\code\core\Mage\Catalog\Block\Navigation.php
到
app\code\local\Mage\Catalog\Block\Navigation.php
这将覆盖Magento块,并允许您使用我们的更改进行更新。
然后,您可以更改此块或大多数其他块的缓存机制以满足您的需要。下面是禁用此块的缓存的示例。
protected function _construct()
{
$this->addData(array(
'cache_lifetime' => false, // or 1 or something tiny
));
}
或者,添加如下内容:
public function getCacheLifetime()
{
return null; // or 1 or what ever..
}
您还可以在存储页面时更改用作唯一标识符的缓存“密钥”,这是模板块的默认缓存键:
/**
* Get cache key informative items
*
* @return array
*/
public function getCacheKeyInfo()
{
return array(
'BLOCK_TPL',
Mage::app()->getStore()->getCode(),
$this->getTemplateFile(),
'template' => $this->getTemplate()
);
}
组合数组中的每个元素以创建生成缓存时使用的唯一键,根据您的要求进行更改可能会有所帮助。 正如您在上面看到的那样,商店代码就在那里,这意味着缓存将记录商店的商店前端/语言,以及每个语言/商店前端,因为它是自己的缓存页面。
根据您使用的块,您可以添加额外的参数,以使缓存或多或少成为目标。