Browse Source

Check for started.

pull/662/head
Sebastian 5 years ago
parent
commit
6949291fcd
  1. 11
      backend/src/Squidex.Web/Pipeline/CachingFilter.cs

11
backend/src/Squidex.Web/Pipeline/CachingFilter.cs

@ -28,18 +28,19 @@ namespace Squidex.Web.Pipeline
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{ {
cachingManager.Start(context.HttpContext); var httpContext = context.HttpContext;
cachingManager.Start(httpContext);
var resultContext = await next(); var resultContext = await next();
if (resultContext.HttpContext.Response.Headers.TryGetString(HeaderNames.ETag, out var etag)) if (httpContext.Response.HasStarted == false &&
{ httpContext.Response.Headers.TryGetString(HeaderNames.ETag, out var etag) &&
if (IsCacheable(resultContext.HttpContext, etag)) IsCacheable(httpContext, etag))
{ {
resultContext.Result = new StatusCodeResult(304); resultContext.Result = new StatusCodeResult(304);
} }
} }
}
private static bool IsCacheable(HttpContext httpContext, string etag) private static bool IsCacheable(HttpContext httpContext, string etag)
{ {

Loading…
Cancel
Save