11
votes

Désactiver / Bypass Magento Page Cache de la page sur une seule page

Comment puis-je désactiver ou contourner FPC pour une seule page? Je ne veux pas utiliser le poinçonnage des trous car il existe plusieurs blocs sur la page que je dois être dynamique et je préfère modifier une configuration / classe pour spécifier que la page entière ne doit pas être mise en cache (semblable au comportement de la caisse. ).

Ma compréhension de la FPC était qu'il n'était pas utilisé pour "Utilisateurs de session" (connecté, ajouté au panier, etc ...). Cependant, je vois que FPC affecte les pages lorsqu'un utilisateur est connecté. Si je désactive FPC, la page fonctionne comme souhaitée.


0 commentaires

3 Réponses :


0
votes

La FPC de Magento est une bête compliquée.

J'ai surmonté cela en utilisant le tutoriel suivant:

http://oggettoweb.com/blog/customizations-compatible -Magento-Plein-page-cache /

Ceci pourrait être ce que vous parlez de «perforation sur trou», mais c'est la seule façon de la surmonter.


3 commentaires

Oui, c'est le coup de poing. J'ai essayé de suivre les instructions du lien, mais je continue à obtenir: "Erreur fatale: le niveau de nidification de fonction maximum de '200' atteint, abandonnant!" (Le nombre n'a pas d'importance. J'ai essayé d'augmenter le maximum et il ne cesse pas de le frapper) lorsque FPC est activé. On dirait qu'il y a une boucle devenue sauvage quelque part. Si je désactive FPC, tout fonctionne bien.


C'est pourquoi les réponses de liaison unique sont mauvaises. L'URL est morte, votre réponse est inutile.


web .Archive.org / Web / 20140218205557 / http: //oggetttoweb.com/blo g / ...



18
votes

Voici la solution pour désactiver FPC pour un contrôleur spécifique (pourrait également être étendu à une action spécifique).

Créez d'abord un observateur à écouter sur l'événement contrôleur_action_predispatch xxx

ajoutez ensuite ce qui suit à votre fichier config.xml pour le module. Ceci va dans la section : xxx

Magento servira votre page à chaque fois et contournera la FPC pour la demande.


4 commentaires

Et si je veux l'utiliser pour la page CMS? Je peux utiliser la partie XML dans la mise à jour XML de la page CMS, mais je ne me casse pas quoi écrire dans la balise de classe


THX, je me suis creusé autour du code de FPC, jusqu'à présent, cela ressemble à la meilleure approche. Le point d'entrée intéressant pourrait être mage_pagecache_model_pagecache_model_pagecessor mais il ne peut pas être remplacé, car il est initialisé avec neuf .. (au moins au début ... la deuxième fois qu'une sigleton est utilisée. ...)


Quelqu'un peut-il me dire, que dois-je écrire au lieu de "ton identifiant unique"? THX :)


@Chester littéralement_anything_you_want_as_long_as_it_is_unique. Bien que typiquement, vous devriez au moins le préfixer avec le nom shortname de votre module.



5
votes

Il suffit de faire la lutte avec Magento Ee FPC ne pas afficher les messages principaux sur les pages CMS mis en cache. Les messages principaux ont fonctionné correctement sur la catégorie de cache et les pages de produits mais pas les pages CMS. J'ai trouvé en passant un certain paramètre à une page, vous pouvez forcer ces pages à générer au lieu du serveur hors du cache.

Trouvé dans: App / Code / Core / Enterprise / Pagecache / Modèle / Processeur / Default.PHP P>

http://www.domain.com/?___store


3 commentaires

Les magasins avec des centaines de milliers de produits subiront des charges de serveurs lourds si FPC est contournée, ce qui en fait un vecteur potentiel pour les attaques DDO. Existe-t-il un moyen d'empêcher ce comportement?


D'accord Cela pourrait être un problème potentiel pour les grands catalogues. On dirait qu'un module personnalisé pour modifier ce comportement serait comme moyen.


Généralement, lorsque vous traitez avec des messages de mise en cache EE FPC, c'est que vous essayez probablement de les générer avec GetGroupedhTML (). Vous devez utiliser uniquement TOHTML () afin de vous assurer que l'entreprise détient la perforation pour la messagerie fonctionne correctement.