Lorsque j'ai mis à niveau vers EE 1.14.2, la plupart des choses se sont bien déroulées, mais j'ai rencontré un problème lorsque j'ai commencé à vérifier mes différentes pages frontales. J'ai un nœud de catalogue avec plusieurs sous-catégories et chacun d'eux a un bloc statique différent qui s'affiche. Après la mise à niveau, la page qui a été touchée en premier après un vidage du cache finirait par apparaître sur toutes les différentes pages.
Je ne sais pas si ce même problème sera présent lors de la sortie de CE 1.9.2 mais je voulais mettre ma solution ici pour ceux qui pourraient trouver ce même problème.
MISE À JOUR: Comme confirmé ici, le même problème est apparu dans CE 1.9.2
Réponses:
Comme il s'agissait d'EE, j'ai pu utiliser le support de Magento, mais j'ai également travaillé par moi-même pour aider à résoudre le problème et obtenir une solution aussi rapidement que possible. Les modifications de code ont été fournies par Magento, donc les appliquer aux fichiers app / code / core réels est correct, bien que vous puissiez toujours dupliquer les fichiers dans votre / app / code / local et y appliquer les modifications.
Le problème était que la méthode de mise en cache des blocs qui a été ajoutée dans 1.14.2 ne générait pas une clé de cache unique, donc lorsque j'ai utilisé plusieurs blocs dans l'espace du contrôleur de catégorie, la clé de cache générée a fini par être unique uniquement pour le premier accès à la page, résultant dans toutes ces pages pour afficher le contenu en double.
Le correctif consistait à ajouter ce qui suit (affiché au format de fichier diff pour montrer le contexte entourant les ajouts - il suffit d'ajouter les lignes avec le + où ils doivent aller):
Dans app / code / core / Mage / Cms / Block / Block.php à la ligne 72:
Dans app / code / core / Mage / Cms / Block / Widget / Block.php à la ligne 82:
Je ne pense pas que je serais le seul à voir ce problème et s'il apparaît dans CE 1.9.2, j'espère que cela aidera à le résoudre pour certaines personnes.
la source
Je pense que la bonne façon est de créer un module personnalisé parce que vous savez tous que Magento Boogieman vous obtiendra! 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 visiter le blog suivant et vous pouvez également le télécharger à partir de celui-ci https://www.milople.com/blogs/ecommerce/solved-magento-static-block-display-issue.html
la source
Il y a un autre problème avec la mise en cache des blocs CMS, qui n'est pas résolu avec le code donné ci-dessus.
Si vous utilisez des URL sécurisées et des balises {{media}} dans vos blocs CMS, vous recevrez un message "Avertissement de contenu non sécurisé" du navigateur, car Magento sert des liens non sécurisés à partir du cache.
Pour le résoudre, vous devez ajouter une balise d'informations de cache supplémentaire, comme
la source
Ce bug peut également être corrigé avec cette petite extension (pas besoin d'éditer les fichiers core ni de réécrire les blocs):
https://github.com/progammer-rkt/Rkt_SbCache
Et il contient également la ligne mentionnée par @AdvancedLogic pour éviter un avertissement de contenu non sécurisé:
(int)Mage::app()->getStore()->isCurrentlySecure()
la source