J'ai un site Web avec plusieurs blocs statiques qui fonctionnait dans 1.9.1.0, mais avec 1.9.2.0, les blocs statiques commencent à s'afficher de façon sporadique, car ils affichent parfois le mauvais bloc plutôt que le bon bloc. Parfois, ils affichent comme souhaité. Est-ce que quelqu'un sait comment résoudre ce problème qui peut être lié à ce problème ?
77
Réponses:
J'ai eu ce problème avec EE 1.14.2 et il semble que le même problème se pose dans CE 1.9.2. J'ai documenté mon problème et solution sur cette question SE .
Fondamentalement, le code suivant a été ajouté au constructeur de
Mage_Cms_Block_Block
:Les blocs statiques du CMS sont maintenant mis en cache. Le problème provient de la manière dont les informations de la clé de cache sont générées. Cela revient à
Mage_Core_Block_Abstract
utiliser le nom des blocs dans la mise en page. Si le bloc n'a pas été ajouté avec layout, par exemple sur une page cms, ce nom n'existe pas. Cela peut entraîner des blocs statiques partageant la même clé de cache et se mélangeant dans le cache.Ma solution consistait à remplacer la
Mage_Cms_Block_Block
classe et à définir les informations de clé de cache en fonction de l'ID de bloc et du magasin actuel.Évidemment, cela devrait être ajouté dans votre propre module avec un
config.xml
fichier et un remplacement de bloc, etc. Sinon, vous pouvez également copierMage_Cms_Block_Block
dans le pool de code local et y ajouter la clé de cache.Vous pouvez voir les nouvelles lignes ajoutées en 1.9.2 ici
la source
Je viens de passer à la version 1.9.2.0 et je vis cela aussi. Les catégories définies pour afficher des blocs statiques + Les produits affichent de manière aléatoire le mauvais bloc statique. Cela n'existait pas avant ma mise à jour 1.9.2.0.
Correctif temporaire Désactive le cache de sortie HTML de Blocks et les blocs affichés sont correctement.
la source
Nous allons ici avec une solution basée sur un module local, car la solution ci-dessus ne fournit pas d’étapes complètes. Nous devons créer un module personnalisé car vous savez tous que Magento Boogieman saura vous aider! si changer le noyau :)
Vous aurez besoin des fichiers suivants:
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
Pour plus d'informations, vous pouvez consulter le lien suivant et également télécharger à partir de ce lien https://www.milople.com/blogs/ecommerce/solved-magento-static-block-display-issue.html
la source
Il n'y a pas de correctif officiel pour cela, cependant, cela a été résolu dans CE 1.9.2.1
Remarque: il a été signalé qu'il restait des problèmes avec les pages CMS sur plusieurs vues de magasin:
Source: http://www.magentocommerce.com/products/bug-tracking/issue/index/id/870
la source
Je peux confirmer ce problème aussi.
Reproduire:
À l'aide de
CMS -> Widgets
, créez un widget pour ajouter un bloc statique à la barre latérale gauche.Créez ensuite un deuxième widget pour ajouter un deuxième bloc statique (différent de celui qui est in
step 1
) à la barre latérale gauche.Si le cache est désactivé, les deux blocs statiques sont correctement affichés dans la barre latérale.
Mais si vous activez le cache, vous verrez le bloc statique
step 1
affiché deux fois.la source
Pour l’instant, Piotr de Magento a publié un correctif non officiel pour ce problème: https://gist.github.com/piotrekkaminski/ecd245e8c9390e4020db
Semble faire l'affaire. Oui, c'est l'édition du coeur, mais le problème est résolu jusqu'à ce que Magento publie le correctif officiel ou la prochaine version ...
la source
Mettre à niveau Magento vers 1.9.2.1
Je l'ai fait et activé le cache pour la sortie HTML de Blocks et il semble être corrigé.
Certains problèmes de sécurité sont également abordés dans la nouvelle version.
la source
Dans sa dernière version, Magento l’améliore avec de nouvelles fonctionnalités de sécurité. vous pouvez ajouter des autorisations dans system-> autorisations pour bloquer en statique.
la source
J'ai eu le même problème avec mon magasin. La meilleure solution que j'ai trouvée jusqu'à présent consiste à désactiver la mise en cache pour les blocs affectés. Vous pouvez le faire en définissant la durée de vie du cache des blocs sur null.
Désactiver globalement le cache "Blocs de sortie HTML" sur un site actif n'est pas une bonne idée car cela aurait un impact inutile sur les performances du site.
Désactiver le cache pour un bloc en xml:
Désactiver le cache pour un bloc en php:
Ne définissez pas la durée de vie du cache sur "0" comme indiqué dans cet article
la source
$block->setCacheLifeTime("null");
noteNULL
et "null" étaient deux choses différentes (une plus tard est une chaîne) et le résultat attendu ne sera donc pas obtenu.J'ai pu résoudre ce problème en mettant à jour les extensions existantes dans Magento Connection Manager. Après l’avoir examiné, j’ai eu l’impression que le problème existe dans le système de mise en cache de Magento.
Par défaut, Magento dispose de plusieurs packages liés à ses technologies de mise en cache. Ils incluent des adaptateurs et des bibliothèques pour Zend et Redis.
Au lieu d'essayer de trouver le paquet approprié, j'ai choisi de mettre à jour tous les paquets de mon installation.
Ensuite, j'ai coché la case: Mage_All_Latest, qui est un métapaquet pour la dernière version stable de Magento 1.9.0.0.
Il peut être possible de résoudre le problème en mettant à niveau uniquement les bons packages. Je pensais que c'était la meilleure façon de faire, car je suis soupçonné que cette méthode applique également des correctifs de sécurité.
la source
Vous devrez faire une mise à niveau complète, ou backport 1.9.2.0
Modifications de la mise en cache des blocs et des widgets CMS dans la version 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
la source
J'utilise Magento 1.9.3.8 et le problème existe toujours.
Vous pouvez trouver ma solution ici :
Fondamentalement, j'ajoute une chaîne unique basée sur l'URL de la page et sur blockId pour chaque information de clé de cache. Ainsi, chaque bloc aura une clé unique:
Jusqu'à ce que Magento prépare un correctif pour ce problème, vous pouvez créer le fichier:
et insérez le code de l'URL github ci-dessus en tant que contenu.
Ce code est testé pour Magento 1.9.2. * Et 1.9.3. *
la source
Ceci est un bug confirmé dans la version 1.9.2, pour le moment, vous pouvez résoudre ce problème en désactivant simplement le cache "Blocks HTML output" de l' administrateur -> section de gestion du cache
J'espère que ça aide
la source