Отличается ли кэш Asp.Net Core 3.0 от просмотра / вывода по сравнению с версией 2.2? - PullRequest
0 голосов
/ 24 октября 2019

Я начал замечать проблему в моей настройке разработки ранее сегодня, которую я никогда раньше не видел.

У меня есть приложение Asp.Net Core с маршрутом по умолчанию, обслуживающее пакет javascript, созданный с помощью веб-пакета. Этот маршрут по умолчанию использует представление с именем Index.cshtml.

Index.cshtml автоматически создается веб-пакетом из другого файла с использованием плагина веб-пакета HtmlWebpackPlugin. Каждый раз, когда веб-пакет перестраивает пакет, он перезаписывает Index.cshtml новой версией, содержащей тег сценария, который указывает на только что созданный пакет.

Приложение Asp.Net запускается внутри док-контейнера, но Visual Studio автоматическимонтирует корневую папку приложений в соответствующую папку на хосте, поэтому статические файлы могут обновляться без необходимости перестраивать контейнер.

Эта установка работала более года до сегодняшнего дня.

СейчасПо какой-то причине, когда создается новый пакет, полученный HTML-код из Asp.Net по-прежнему указывает на старый пакет. Сначала я подумал, что проблема с креплением диска. Тем не менее, когда я присоединяюсь к работающему контейнеру и смотрю на Index.cshtml изнутри контейнера, он выглядит правильно (имеется в виду, что он указывает на новый пакет js).

Я обновил ядро ​​Asp.Net 2.2до 3.0 примерно неделю назад, и я подозреваю, что это связано. Я не могу найти в Интернете никакой информации, которая бы указывала на то, что выходное кэширование или кэширование просмотра работает по умолчанию иначе, чем версия 2.2, но я, возможно, что-то упустил.

Кто-нибудь знает, в чем может быть проблема?

1 Ответ

0 голосов
/ 24 октября 2019

Для тех, у кого возникла та же проблема:

Как прокомментировал @itminus, для поддержки компиляции видов бритвы во время выполнения необходимо добавить ссылку на Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation и выполнить

services
    .AddControllersWithViews()
    .AddRazorRuntimeCompilation();

в ConfigureServices.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...