全ページキャッシュがブロックキャッシュを無効にしているのはなぜですか?


13

すべてのページに含まれる静的な部分(ナビゲーション)がありますが、生成に時間がかかります。これが、キャッシュの有効期間と静的キャッシュキーを設定した理由です。

FPCが有効になるまで正常に動作します。次に、新しく呼び出されたページに対してブロックが再度生成され、ブロックキャッシュから提供されません。

以下にこの行がありますEnterprise_PageCache_Model_Observer

Mage::app()
    ->getCacheInstance()
    ->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); // disable blocks cache

この理由は何ですか?FPCがオンの場合でも、特定のブロックをキャッシュすることは理にかなっています。そうしないと、キャッシュから完全に提供されていないページの生成が遅くなります。

  1. その背後にある設計決定とは何ですか?
  2. その周りの良い解決策は何ですか?
  3. このブロックキャッシュの禁止を削除するだけでは有害ですか?

これは古い質問ですが、これについて何か見つけましたか?
xelber

回答:


1

このバグは、Magento 1.14.2.0で修正されました。(http://merch.docs.magento.com/ee/user_guide/magento/release-notes-ee-1.14.2.htmlの既知の問題を参照


2
私はちょうど1.4.2.4でこれにぶつかりました。時間の経過とともにロジックが変更されていることがわかります。コードはif:に囲まれてい if ($this->_processor->canProcessRequest($request) && ($request->isStraight() || $this->_processor->getRequestProcessor($request)) ) { Mage::app()->getCacheInstance()->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); } ますが、ブロックキャッシュを禁止する理由の背後にある理由については何も見つかりません。もっと啓発できますか?
PanPipes

2

チェックアウトやカートページなどで、動的ブロックのFPCを無効にできるようにするため。3番目の質問については、FPCプロセスが壊れている可能性のあるこれをしないでください(率直に言って、正しい答えを出すために、ソースコードも確認する必要があります)。


最初の質問に関する最初の部分はありますか?はいの場合、チェックアウトまたはカートページでFPCを無効にするために、ブロックキャッシュを無効にする必要があるのはなぜですか?実際、ブロックキャッシュは、ページ全体がキャッシュされている場合にのみ無効になります。
アレックス

ユーザーCookieを制御しているソースコードを確認しました。ユーザーがCookieをブロックした場合、FPCはキャッシュをブロックします。_getCookie関数は、ユーザーCookieを制御しているEnterprise_PageCache_Model_Cookieインスタンスを返します。
オグズチェリクデミル

それはクッキーと何の関係がありますか?また、どのコード行について話しているのですか?混乱
アレックス

アレックス、今夜、もう一度チェックして必要なコードブロックをお送りします。
オグズチェリクデミル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.