Я создаю веб-приложение с ASP.Net Core, машинописью, реагированием и веб-пакетом.Это называется Ui.WebApp
.Приложение React находится на Ui.WebApp/ClientApp
, а сборка веб-пакета выводится на Ui.WebApp/ClientApp/dist
.В мой Startup.cs
я включил
app.UseStaticFiles(new StaticFileOptions {
FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "ClientApp/dist"))
}
);
Это работает, т.е. когда я загружаю стили в свой _Layout.cshtml
как <link rel="stylesheet" href="~/main.css" asp-append-version="true" type="text/css" />
, который физически находится в Ui.WebApp/ClientApp/dist/main.css
.Это также работает для сценариев, которые я включаю как <script src="~/main.js"></script>
.
Теперь мне нужно собрать сценарии в веб-пакете с хэшем в их имени, т.е. main_968495a262da1789981f.js
.Шаблон для этого в ASP.Net должен использовать <script asp-src-include="~/main_*.js"></script>
.Тем не менее, при просмотре страницы из браузера не появляется результирующий скрипт-тег, так как я предполагаю, что ASP.Net не находит ни одного файла, соответствующего шаблону (но я вижу его в проводнике).
Как ни странно, когда я вручную помещаю хэшированный js-файл в Ui.WebApp/wwwroot
(который я не использую иначе), теги скрипта заполняются правильно.Они даже остаются там, когда я удаляю папку и обновляю страницу.
Поэтому я предполагаю, что ASP.Net проверяет помощники тегов во время компиляции и, следовательно, не может видеть конфигурацию, которую я делаю в Startup.cs
.
Есть ли способ получить ASP.Netпроверить помощники тегов во время выполнения и выбрать правильное местоположение?