Als ich ein Upgrade auf EE 1.14.2 durchführte, liefen die meisten Dinge reibungslos, aber ich stieß auf ein Problem, als ich begann, meine verschiedenen Frontend-Seiten zu überprüfen. Ich habe einen Katalogknoten mit mehreren Unterkategorien, auf denen jeweils ein anderer statischer Block angezeigt wird. Nach dem Upgrade wird die Seite, die nach dem Leeren des Cache zuerst aufgerufen wurde, auf allen Seiten angezeigt.
Ich weiß nicht, ob das gleiche Problem bei der Veröffentlichung von CE 1.9.2 auftreten wird, aber ich wollte hier meine Lösung für diejenigen finden, die das gleiche Problem möglicherweise finden.
UPDATE: Wie hier bestätigt , trat das gleiche Problem in CE 1.9.2 auf
Antworten:
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:
In app / code / core / Mage / Cms / Block / Widget / Block.php in Zeile 82:
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.
quelle
Ich denke, richtig ist, dass wir ein benutzerdefiniertes Modul erstellen müssen, weil Sie alle wissen, dass Magento Boogieman Sie erhalten wird! wenn ändere den Kern :)
Sie benötigen folgende Dateien:
app/etc/modules/Bhupendra_Cms.xml
app/code/local/Bhupendra/Cms/etc/config.xml
app/code/local/Bhupendra/Cms/Block/Block.php
app/code/local/Bhupendra/Cms/Block/Widget/Block.php
Weitere Informationen finden Sie in folgendem Blog. Sie können auch https://www.milople.com/blogs/ecommerce/solved-magento-static-block-display-issue.html herunterladen
quelle
Es gibt ein weiteres Problem beim CMS-Block-Caching, das mit dem oben angegebenen Code nicht behoben wurde.
Wenn Sie sichere URLs und {{media}} Tags in Ihren CMS-Blöcken verwenden, erhalten Sie vom Browser die Meldung "Insecure Content Warning", da Magento unsichere Links aus dem Cache bedient.
Um dies zu beheben, müssen Sie ein weiteres Cache-Info-Tag hinzufügen, as
quelle
Dieser Fehler kann auch mit dieser kleinen Erweiterung behoben werden (keine Notwendigkeit, Kerndateien zu bearbeiten oder Blöcke neu zu schreiben):
https://github.com/progammer-rkt/Rkt_SbCache
Außerdem enthält es die von @AdvancedLogic erwähnte Zeile, um unsichere Inhaltswarnungen zu vermeiden:
(int)Mage::app()->getStore()->isCurrentlySecure()
quelle