Da es sich um EE handelte, konnte ich den Magento-Support nutzen, aber ich habe die Dinge auch selbst herausgearbeitet, um das Problem zu beheben und so schnell wie möglich eine Lösung zu finden. Die Codeänderungen wurden von Magento zur Verfügung gestellt, so dass es in Ordnung ist, sie auf die eigentlichen App- / Code- / Core-Dateien anzuwenden, obwohl Sie die Dateien in Ihrem / app / code / local immer duplizieren und die Änderungen dort anwenden können.
Das Problem war, dass die in 1.14.2 hinzugefügte Block-Caching-Methode keinen eindeutigen Cache-Schlüssel generierte. Wenn also mehrere Blöcke im Bereich der Kategorie-Controller verwendet wurden, war der generierte Cache-Schlüssel nur für den ersten Seitenaufruf eindeutig. Dies führt dazu, dass alle diese Seiten doppelten Inhalt aufweisen.
Der Fix bestand darin, Folgendes hinzuzufügen (wird im Diff-Dateiformat angezeigt, um den Kontext zu zeigen, der die Zusätze umgibt - fügen Sie einfach die Zeilen mit dem + hinzu, in die sie eingefügt werden müssen):
In app / code / core / Mage / Cms / Block / Block.php in Zeile 72:
}
return $html;
}
+
+ /**
+ * Retrieve values of properties that unambiguously identify unique content
+ *
+ * @return array
+ */
+ public function getCacheKeyInfo()
+ {
+ $blockId = $this->getBlockId();
+ if ($blockId) {
+ $result = array(
+ $blockId,
+ Mage::app()->getStore()->getCode(),
+ );
+ } else {
+ $result = parent::getCacheKeyInfo();
+ }
+ return $result;
+ }
}
In app / code / core / Mage / Cms / Block / Widget / Block.php in Zeile 82:
$helper = Mage::helper('cms');
$processor = $helper->getBlockTemplateProcessor();
$this->setText($processor->filter($block->getContent()));
+ $this->addModelTags($block);
}
}
unset(self::$_widgetUsageMap[$blockHash]);
return $this;
}
+
+ /**
+ * Retrieve values of properties that unambiguously identify unique content
+ *
+ * @return array
+ */
+ public function getCacheKeyInfo()
+ {
+ $result = parent::getCacheKeyInfo();
+ $blockId = $this->getBlockId();
+ if ($blockId) {
+ $result[] = $blockId;
+ }
+ return $result;
+ }
}
Ich würde nicht denken, dass ich der einzige sein würde, der dieses Problem sieht, und wenn es in CE 1.9.2 auftaucht, wird dies hoffentlich dazu beitragen, es für einige Leute zu lösen.