mirror of https://github.com/Squidex/squidex.git
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
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
|
|
};
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|