Ich habe eine Website mit mehreren statischen Blöcken, die in Version 1.9.1.0 ausgeführt wurde. In Version 1.9.2.0 werden die statischen Blöcke jedoch nur sporadisch angezeigt, da sie manchmal nicht den richtigen, sondern den falschen Block enthalten. Manchmal werden sie wie gewünscht angezeigt. Weiß jemand, wie man dieses Problem löst, das möglicherweise mit diesem Problem zusammenhängt ?
77
Antworten:
Ich hatte dieses Problem mit EE 1.14.2 und es sieht so aus, als wäre dasselbe Problem in CE 1.9.2 aufgetreten. Ich habe mein Problem und meine Lösung zu dieser SE-Frage dokumentiert .
Grundsätzlich aufgrund des folgenden Codes, der dem Konstruktor von hinzugefügt wurde
Mage_Cms_Block_Block
:Statische CMS-Blöcke werden jetzt zwischengespeichert. Das Problem ergibt sich aus der Generierung der Cache-Schlüsselinformationen. Es wird auf das
Mage_Core_Block_Abstract
Verhalten bei der Verwendung des Blocknamens im Layout zurückgegriffen. Wenn der Block nicht mit Layout hinzugefügt wurde, z. B. auf einer CMS-Seite, ist dieser Name nicht vorhanden. Dies kann dazu führen, dass statische Blöcke denselben Cache-Schlüssel verwenden und im Cache verwechselt werden.Meine Lösung bestand darin, die
Mage_Cms_Block_Block
Klasse zu überschreiben und die Cache-Schlüssel-Informationen basierend auf der Block-ID und dem aktuellen Speicher festzulegen.Offensichtlich müsste dies in Ihrem eigenen Modul mit einer
config.xml
Datei und einer Blocküberschreibung usw. hinzugefügt werden . Alternativ könnten SieMage_Cms_Block_Block
in den lokalen Codepool kopieren und den Cache-Schlüssel dort hinzufügen.Sie können die in 1.9.2 hinzugefügten neuen Zeilen hier sehen
quelle
Ich habe gerade ein Upgrade auf 1.9.2.0 durchgeführt und erlebe dies auch. Kategorien, in denen statische Blöcke + Produkte angezeigt werden, zeigen zufällig den falschen statischen Block an. Dies war vor meinem Upgrade auf 1.9.2.0 nicht der Fall.
Temporäre Korrektur Deaktivieren Sie den HTML-Ausgabecache für Blöcke, und die angezeigten Blöcke sind korrekt.
quelle
Hier gehen wir mit lokaler modulbasierter Lösung um, da die obige Lösung keine ganzen Schritte enthält. Wir müssen ein benutzerdefiniertes Modul erstellen, da 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 unter folgendem Link und können auch unter https://www.milople.com/blogs/ecommerce/solved-magento-static-block-display-issue.html heruntergeladen werden
quelle
Es gibt keinen offiziellen Patch dafür, er wurde jedoch in CE 1.9.2.1 behoben
Hinweis: Es wurde berichtet, dass immer noch Probleme mit CMS-Seiten in mehreren Geschäftsansichten vorliegen:
Quelle: http://www.magentocommerce.com/products/bug-tracking/issue/index/id/870
quelle
Ich kann dieses Problem auch bestätigen.
Reproduzieren:
Mit der
CMS -> Widgets
, erstellen Sie ein Widget einen statischen Block auf der linken Seitenleiste hinzuzufügen.Erstellen Sie dann ein zweites Widget, um
step 1
der linken Seitenleiste einen zweiten statischen Block (einen anderen Block als in ) hinzuzufügen .Wenn der Cache deaktiviert ist, werden beide statischen Blöcke korrekt in der Seitenleiste angezeigt.
Wenn Sie jedoch den Cache aktivieren, wird der statische Block
step 1
zweimal angezeigt.quelle
Piotr von Magento hat vorerst einen nicht offiziellen Patch für diese Ausgabe veröffentlicht: https://gist.github.com/piotrekkaminski/ecd245e8c9390e4020db
Scheint den Trick zu machen. Ja, es bearbeitet den Core, behebt aber das Problem, bis Magento den offiziellen Patch oder die nächste Version veröffentlicht ...
quelle
Aktualisieren Sie Magento auf 1.9.2.1
Ich habe es getan und den Cache für die Block-HTML-Ausgabe aktiviert und es scheint behoben zu sein.
Ebenso wie einige Sicherheitsprobleme werden in der neuen Version behoben.
quelle
In der neuesten Version von Magento erweitert es mit neuen Sicherheitsfunktionen. Sie können Berechtigungen in system-> permissions to static block hinzufügen.
quelle
Ich hatte das gleiche Problem mit meinem Geschäft. Die beste Lösung, die ich bisher gefunden habe, besteht darin, das Caching für die betroffenen Blöcke zu deaktivieren. Sie können dies tun, indem Sie die Cache-Lebensdauer der Blöcke auf Null setzen.
Das globale Deaktivieren des Cache "Blockiert HTML-Ausgabe" auf einer Live-Site ist keine gute Idee, da dies die Site-Leistung unnötig beeinträchtigt.
Cache für einen Block in xml deaktivieren:
Deaktivieren des Cache für einen Block in PHP:
Setzen Sie die Cache-Lebensdauer nicht auf "0", wie in diesem Artikel erläutert
quelle
$block->setCacheLifeTime("null");
HinweisNULL
und "Null" sind zwei verschiedene Dinge (später ist einer eine Zeichenfolge) und daher wird das erwartete Ergebnis nicht erhalten.Ich konnte dieses Problem beheben, indem ich die vorhandenen Erweiterungen in Magento Connection Manager aktualisierte. Nachdem ich es mir angesehen hatte, hatte ich den Eindruck, dass das Problem im Magento-Caching-System besteht.
Standardmäßig verfügt Magento über mehrere Pakete, die sich auf seine Caching-Technologien beziehen. Sie enthalten Adapter und Bibliotheken für Zend und Redis.
Anstatt zu versuchen, das richtige Paket zu finden, habe ich alle Pakete in meiner Installation aktualisiert.
Dann habe ich das Häkchen gesetzt: Mage_All_Latest Dies ist ein Metapaket für die neueste stabile Version von Magento 1.9.0.0.
Möglicherweise können Sie das Problem beheben, indem Sie nur die richtigen Pakete aktualisieren. Ich war der Meinung, dass dies der bessere Weg ist, da ich den Verdacht habe, dass diese Methode auch Sicherheitspatches anwendet.
quelle
Sie müssen ein vollständiges Upgrade durchführen oder 1.9.2.0 zurückportieren
CMS-Block- und Widget-Caching-Änderungen in 1.9.2.1
magento-1921 / app / code / core / mage / cms / block / block.php
magento-1921 / app / code / core / mage / cms / block / widget / block.php
quelle
Ich verwende Magento 1.9.3.8 und das Problem besteht immer noch.
Sie können meine Lösung hier finden :
Grundsätzlich füge ich jeder Cache-Schlüsselinformation eine eindeutige Zeichenfolge basierend auf der Seiten-URL und der Block-ID hinzu, sodass jeder Block einen eindeutigen Schlüssel hat:
Bis Magento ein Update für dieses Problem vorbereitet, können Sie die Datei erstellen:
und füge den Code aus der obigen Github-URL als Inhalt ein.
Dieser Code wurde für Magento 1.9.2. * Und 1.9.3. * Getestet.
quelle
Dies ist ein bestätigter Fehler in Version 1.9.2. Zurzeit können Sie dieses Problem beheben, indem Sie einfach den Cache "Blockiert HTML-Ausgabe" im Abschnitt admin -> Cache-Verwaltung deaktivieren
Ich hoffe es hilft
quelle