Я использую шаблон проекта Angular с ASP. NET Core. Ссылка
Кэширование должно быть включено по умолчанию, чтобы быть уверенным, что я добавил объект StaticFileOptions в StaticfileMiddleware:
public class Startup
{
...
app.UseStaticFiles(new StaticFileOptions
{
OnPrepareResponse = ctx =>
{
const int durationInSeconds = 60 * 60 * 24;
ctx.Context.Response.Headers[HeaderNames.CacheControl] =
"public,max-age=" + durationInSeconds;
}
});
...
}
Затем я создал тест. html в папке wwwroot.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8>
<title>Test static files</title>
</head>
<body>
This is a test for static files!
</body>
</html>
При I dotnet run
и переходе к https://localhost: 5001 / test. html страница отображается корректно.
test. html
После изменения страницы html я нажимаю в адресной строке google chrome и нажимаю enter, чтобы выдать другую HTTP-запрос к тестовому файлу. html. Я не перезагружаю страницу.
тест. html после изменения
Вы видите, что изменение отражено в Google chrome, и я получил статус Снова 200 вместо 304. Контроль кэширования в заголовке ответа: publi c, max-age = 86400. Почему кеширование файла stati c не работает? Мой желаемый результат заключается в том, что изменение не отражается после второго HTTP-запроса, поэтому я могу быть уверен, что кэширование файла stati c работает правильно.
Я использую:. NET Core SDK 3.1. 201 и Chrome 80.0.3987.163.