0

Magento が Active および Active 親クラスをメニューに書き込むのをやめたように見えるという奇妙な問題に遭遇しました。

私はデフォルトの Magento メニューを使用してきましたが、1 か月ほど問題なく動作しています。キャッシュをクリアし、カテゴリと製品のインデックスを再作成しました。

アドバイスをいただければ幸いです..これはファイル許可の問題でしょうか?

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 のアドバイスに従い、Block Html Caching を無効にすると、アクティブなクラスが再度作成されました。

于 2012-05-10T09:43:57.597 に答える
0

Magento の HTML ブロック キャッシングは、かなり奇妙な獣です。そのうちの 1 つがトップ メニューです (テンプレート ファイルは、使用している 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),
));

これにより、キャッシュ時間が null に設定されます。つまり、無効になります。

page.xml次に、レイアウト ファイルで ( 内に) ナビゲーション バーを見つける必要があります。次のタグが付けられます。

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

独自のモジュールのナビゲーション ブロック クラスに置き換える必要があります。

<block type="mycompany/navigation"

キャッシュを更新すると、クラスが適切に動作することがわかるはずです。Magento のレイアウトの詳細については、Alan Storm の優れた本'No Frills Magento Layout'をお勧めします。Magento のデバッグ ツールに追加するには、このモジュールをチェックしてください。どのブロックがキャッシュされているかを示します (およびその他の有用なブロック情報)。

于 2012-08-24T13:07:48.570 に答える