2

Ich versuche, das alte Projekt (basierend auf Storefront für Sitecore 8.0) auf Version Sitecore 8.1 (aktuellste im Moment) zu aktualisieren. Während dieses Prozesses hatte ich ein Problem, wenn ich die gleichen Produkte für alle Kategorien sehe. Zum Beispiel wähle ich zum ersten Mal eine Kategorie und sehe korrekte Produkte. Danach wähle ich irgendeine andere Kategorie, sehe aber immer noch die gleichen Produkte (aus der ersten Kategorie). Diese Daten werden vom ProductList-Rendering (einem Controller-Rendering) zurückgegeben und nach dem ersten Aufruf nicht mehr ausgeführt (versuchte, im Debug-Modus eine entsprechende Aktion in einem CatalogController zu erreichen). Wenn wir alle Caches löschen (.. sitecore/admin/cache.aspx) - dann funktioniert es wieder, aber nur beim ersten Mal.Sitecore> Deaktivieren HTML-Caching eines Renderings

Ich verstehe, dass ich Caching für die gesamte Website nicht deaktivieren kann, muss ich es für diese generische Seite (mit "*" in Elementname) wo die Commerce-Daten angezeigt werden - also für alle Kategorien und Produktseiten . Ich habe dieses Rendering im Design-Modus überprüft und kann feststellen, dass alle Kontrollkästchen für den Cache momentan deaktiviert sind. Ich weiß nicht, was ich verpasst habe.

Vielen Dank im Voraus für die Hilfe.

+2

Haben Sie die Caching-Einstellungen sowohl auf der Steuerungsebene (in den Präsentationsdetails Ihres Seitenelements) als auch auf dem Layoutdefinitionselement (unter/sitecore/layouts) überprüft? Meine Wette ist, dass Sie nur an einem dieser Orte eingecheckt haben, und das andere hat Caching Checkboxen überprüft. –

+0

Ja, dein Vorschlag war richtig. Anfangs habe ich die Caching-Einstellungen im Rendering überprüft (die zu einem Artikellayout hinzugefügt wurden), aber die Einstellungen des Renderings selbst nicht überprüft. Bitte fügen Sie Ihren Vorschlag als Antwort hinzu, ich denke, dass es für so vergessliche Personen wie mich nützlich sein könnte. Vielen Dank! – Max

+1

Übrigens habe ich festgestellt, dass dieses Rendering auch eine Caching-Einstellung in Bezug auf URL-Pfade (http://screencast.com/t/1kbwHv3KulzN) hat, aber es hat in dieser Situation nicht geholfen.Ich denke, es sollte funktionieren (weil jede Kategorie eine andere URL hat), tut es aber nicht. – Max

Antwort

1

Die Caching-Einstellungen Sie haben Behinderte in den Präsentations Details auf der Steuerungsebene befinden:

Presentation-level caching

Darüber hinaus sollten Sie sicherstellen, dass das Caching für Ihre Sublayout- (oder Rendering-) Definition deaktiviert ist (unter/sitecore/Layout/Sublayouts):

Sublayout definition caching

1

Ich glaube, Sie haben Caching auf Steuerelement/Sublayout-Definitionsebene aktiviert, die dazu führen wird, dass Rendering auf jeder Seite auf der Website zu cachen, vor einer Weile war ich in der Lage, eine Lösung zum Deaktivieren des Caching für ein bestimmtes Rendering/Sublayout auf bestimmten Seiten, während es auf anderen Seiten zwischengespeichert wird.

Ich erstellte im Grunde eine neue Rendering-Parameter-Vorlage mit Kontrollkästchen "Caching-Einstellungen abbrechen", dann in meinem Rendering-Definition-Element, ich die Parametervorlage auf die neue Vorlage, wenn Ihre Site auf Sitecore MVC ausgeführt wird, gehen Sie folgendermaßen vor:

erstellen Sie eine Klasse namens 'SetCacheability'

namespace Sitecore.SharedResources.Pipelines.Rendering 
{ 
    public class SetCacheability : Sitecore.Mvc.Pipelines.Response.RenderRendering.SetCacheability 
    { 
     protected override bool IsCacheable(Sitecore.Mvc.Presentation.Rendering rendering, Sitecore.Mvc.Pipelines.Response.RenderRendering.RenderRenderingArgs args) 
     { 
      if (!String.IsNullOrEmpty(rendering.Parameters["Cancel Cache Settings"]) 
       && rendering.Parameters["Cancel Cache Settings"] == "1") 
      { 
       return false; 
      } 
      return base.IsCacheable(rendering, args); 
     } 
    } 
} 

den Patch-Konfigurationsdatei erstellen in Ihrem Ordner enthalten:

Hier ist der Blog i auf dieser schrieb: http://www.sitecorecoding.com/2014/09/disabling-caching-for-rendering-on-some.html

this helps

+0

Hallo Ahmed, danke für die Hilfe. Dmytro hat mein Problem ein wenig früher gelöst als du. – Max