Headless CMS and Content Managment Hub
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

58 lines
1.9 KiB

// ==========================================================================
// WebUsages.cs
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex Group
// All rights reserved.
// ==========================================================================
using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.Net.Http.Headers;
using Squidex.Pipeline;
// ReSharper disable InvertIf
namespace Squidex.Config.Web
{
public static class WebUsages
{
public static void UseMyForwardingRules(this IApplicationBuilder app)
{
app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedProto, RequireHeaderSymmetry = false });
app.UseMiddleware<EnforceHttpsMiddleware>();
}
public static void UseMyCachedStaticFiles(this IApplicationBuilder app)
{
app.UseStaticFiles(new StaticFileOptions
{
OnPrepareResponse = context =>
{
context.Context.Request.GetTypedHeaders();
var response = context.Context.Response;
var headers = response.GetTypedHeaders();
if (!string.Equals(response.ContentType, "text/html", StringComparison.OrdinalIgnoreCase))
{
headers.CacheControl = new CacheControlHeaderValue
{
MaxAge = TimeSpan.FromDays(60)
};
}
else
{
headers.CacheControl = new CacheControlHeaderValue
{
NoCache = true
};
}
}
});
}
}
}