Last active
November 9, 2018 18:48
-
-
Save fluxdigital/a13892d39b7fbbaba624c57a459bccb1 to your computer and use it in GitHub Desktop.
Fix for MvcBrowserCaching not working on 8.1 and 8.2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MvcBrowserCaching : GetPageRenderingProcessor | |
{ | |
public override void Process(GetPageRenderingArgs args) | |
{ | |
Assert.ArgumentNotNull((object)args, "args"); | |
Profiler.StartOperation("Update browser caching headers."); | |
HttpContext currentContext = HttpContext.Current; | |
Item currentItem = PageContext.CurrentOrNull.Item; | |
if (currentContext == null) | |
return; | |
MvcBrowserCaching.SetCacheHeaders(currentContext); | |
if (currentItem != null) | |
MvcBrowserCaching.SetUpdateHeaders(currentItem, currentContext); | |
Profiler.EndOperation(); | |
} | |
private static void SetCacheHeaders(HttpContext currentContext) | |
{ | |
if (Context.Site == null && !Settings.DisableBrowserCaching || Context.Site != null && !Context.Site.DisableBrowserCaching) | |
return; | |
Tracer.Info((object)"Adding Http headers to disable caching."); | |
currentContext.Response.Cache.SetNoStore(); | |
currentContext.Response.Cache.SetCacheability(HttpCacheability.NoCache); | |
} | |
private static void SetUpdateHeaders(Item item, HttpContext currentContext) | |
{ | |
DateTime date = item.Statistics.Updated; | |
if (date > DateTime.UtcNow) | |
date = DateTime.UtcNow; | |
Tracer.Info((object)"Adding Http header to indicate last modification.", (object)("Date: " + (object)date + " (UTC).")); | |
currentContext.Response.Cache.SetLastModified(date); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment