Контроль кэша в подпапках wwwroot Net core 2.2 - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь добавить заголовки управления кэшем в файлы .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, всегда не установлен ни один кеш в заголовках запросов.

Любой совет по этому вопросу будет принята с благодарностью.

...