2012-05-09 44 views
0

我遇到了一個奇怪的問題,其中magento似乎已停止將活動和活動父類寫入我的菜單。Magento頂部菜單突然停止寫入「活躍」類

我一直在使用默認的Magento菜單,它已經工作了一個月左右。我清除了緩存並重新編制了類別和產品的索引。

任何意見讚賞..這可能是一個文件permision問題?

+1

禁用塊HTML緩存完全,看看是否有差別 – benmarks

回答

0

跟隨Benmark的建議,禁用塊Html緩存和活動類被再次寫入。

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調試工具添加了一些新功能,請查看this module,其中顯示了哪些塊正在緩存(以及其他有用塊信息的整個加載)。

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>