2016-05-11 4 views
1

Innerhalb des Markups meines Renderings füge ich einen Verweis auf eine Reihe von .less-Dateien mit der Bundles.Reference hinzu. Wenn ich die Zwischenspeicherung für diese Komponente aktiviere, werden die weniger Dateien nicht zu hinzugefügt.Sitecore cachefähig & Kassette

@model Sitecore.Mvc.Presentation.RenderingModel 
@{ 
    Bundles.Reference("~/resources/less/interior", "header"); 
} 
+0

Wenn Sie Caching aktivieren, wird der Code nicht mehr (nach dem ersten Mal) ausgeführt, so ist es normal, dass Ihre Referenzen werden nicht mehr aufgenommen, nicht wahr? – Gatogordo

+0

Sie haben Recht. Ich versuche herauszufinden, wie ich das Ergebnis zwischenspeichern und die aktuelle Implementierung beibehalten kann. –

Antwort

0

Sie können nicht beide Cache (Ausgabe-Cache) haben und erwarten, dass der Code ausgeführt werden. Also entweder du Cache, aber dann musst du den Code woanders hinlegen. Oder du hast keinen (Output-) Cache. Der (Ausgabe-) Cache und die Ausführung des Codes schließen sich jedoch gegenseitig aus.

+0

Natürlich können Sie. Ich arbeite gerade an einer Lösung. –

+0

Sie haben ein anderes Rendering hinzugefügt, so dass Sie den Code "woanders" verschoben haben, wie ich schon sagte ..;) – Gatogordo

+0

Sie waren am Ende richtig. Das habe ich auf halbem Weg begriffen ;-). So oder so funktionierte das und wir mussten die .less-Implementierungen auf der Site nicht ändern. –

1

Verschieben Sie die Renderings Ihrer Cassette in ein Viewer-Rendering.

@Bundles.RenderStylesheets("global") 
@Bundles.RenderStylesheets("header") 
@Bundles.RenderScripts("global") 
@Bundles.RenderScripts("header") 

Fügen Sie diese Rendering Sitecore hinzu. Wie in dieser screenshot gesehen.

Fügen Sie Ihr Rendering Ihrem Layout hinzu. Dies wird durch die Seitentreffer zwischengespeichert.

@Html.Sitecore().Rendering("<your rendering definition item id>", new { Cacheable = true, CacheKey = "my_rendering", Cache_VaryByData = true })