«asp-src-include» не разрешает файлы - PullRequest
5 голосов
/ 03 апреля 2019

Я создаю веб-приложение с 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проверить помощники тегов во время выполнения и выбрать правильное местоположение?

...