0

我遇到了一个奇怪的问题,magento 似乎已经停止将 Active 和 Active 父类写入我的菜单。

我一直在使用默认的 Magento 菜单,它已经运行了一个月左右。我已清除缓存并重新索引类别和产品。

任何建议表示赞赏..这可能是文件权限问题吗?

4

3 回答 3

3

对我来说,local.xml 中的这个 xml 更改解决了这个问题:

<default>
    <reference name="catalog.topnav">
        <action method="unsetData"><key>cache_lifetime</key></action>
        <action method="unsetData"><key>cache_tags</key></action>
    </reference>
</default>
于 2014-06-26T15:27:29.240 回答
0

遵循 Benmarks 的建议,禁用块 Html 缓存,并且再次编写活动类。

于 2012-05-10T09:43:57.597 回答
0

Magento 的 HTML 块缓存是一个相当奇怪的野兽。他们只启用了几个块来使用它,其中之一是顶部菜单(模板文件因您使用的 Magento 版本而异)。

如果你想保持块缓存并摆脱这个错误,那么你可以创建一个具有新块类型的模块

extends Mage_Catalog_Block_Navigation

_construct()并在您的块的方法中设置以下数据:

$this->addData(array(
   'cache_lifetime'    => null,
   'cache_tags'        => array(Mage_Catalog_Model_Category::CACHE_TAG, Mage_Core_Model_Store_Group::CACHE_TAG),
));

这会将缓存时间设置为空,即禁用它。

然后,在您的布局文件中,您需要找到(在page.xml)导航栏。它将具有以下标签:

<block type="catalog/navigation"...

您需要将其替换为您自己的模块的导航块类:

<block type="mycompany/navigation"

刷新你的缓存,你应该会发现你的类行为正常。有关 Magento 布局的更多信息,我真的推荐 Alan Storm 的优秀书籍“No Frills Magento Layout”,对于 Magento 调试工具的一个很好的补充,请查看这个模块,它向您显示哪些块正在被缓存(以及整个负载其他有用的块信息)。

于 2012-08-24T13:07:48.570 回答