Я пытаюсь добавить заголовки управления кэшем в файлы .js и .css, которые находятся в wwwroot / dist.Если я вывожу свои файлы непосредственно в wwwroot, а не в wwwroot / dist (из веб-пакета), заголовки добавляются без проблем с помощью следующего кода:
app.UseStaticFiles(new StaticFileOptions
{
OnPrepareResponse = ctx =>
{
const int durationInSeconds = 60 * 60 * 24 * 365;
ctx.Context.Response.Headers[HeaderNames.CacheControl] =
"public,max-age=" + durationInSeconds;
}
});
, однако этот метод, похоже, игнорирует подпапки.В связи с этим я добавил следующий код непосредственно под кодом, показанным выше:
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "dist")),
RequestPath = "/dist",
OnPrepareResponse = ctx =>
{
const int durationInSeconds = 60 * 60 * 24 * 365;
ctx.Context.Response.Headers[HeaderNames.CacheControl] =
"public,max-age=" + durationInSeconds;
}
});
В идеале файлы должны содержаться в папке 'dist', поскольку это игнорируется в управлении исходным кодом и выходных файлах.содержит хеш, поэтому я не могу по возможности вручную добавить их в мой git ignore.
В дополнение к этому кажется, что для любых файлов, обслуживаемых из подпапки wwwroot, всегда не установлен ни один кеш в заголовках запросов.
Любой совет по этому вопросу будет принята с благодарностью.