Статические веб-ресурсы - это статические файлы, доступные из Razor Class Library (RCL) :
Для RCL могут потребоваться сопутствующие статические активы, на которые может ссылаться приложение-потребительиз RCL. ASP.NET Core позволяет создавать списки RCL, включающие статические ресурсы, доступные приложению-потребителю.
UseStaticWebAssets
добавляет дополнительных поставщиков файлов (экземпляры StaticWebAssetsFileProvider
), используя файл манифеста ({environment.ApplicationName}.StaticWebAssets.xml
, если не установлен через IConfiguration
), чтобы определить список отображений от пути к базовому пути.
Например, при использовании RCL интерфейса Identity UI ASP.NET файл манифеста для вашего приложения выглядит примерно так:
<StaticWebAssets Version="1.0">
<ContentRoot BasePath="/Identity" Path="\path\to\.nuget\packages\microsoft.aspnetcore.identity.ui\3.0.0\staticwebassets\V4" />
</StaticWebAssets>
Все это заканчивается CompositeFileProvider
устанавливается для IWebHostEnvironment.WebRootFileProvider
. Этот составной провайдер выполняет две функции:
- Обрабатывает
wwwroot/
статические файлы как обычно (при условии конфигурации по умолчанию). - Делегирует любые файлы, запрошенные из
wwwroot/Identity
, в извлеченный пакет NuGetпапка содержимого для пользовательского интерфейса Identity.
Как показывает фрагмент кода из вашего вопроса, это происходит только при работе в среде Development
. Когда ваше приложение опубликовано , соответствующие файлы копируются в папку wwwroot
, как если бы они были частью вашего приложения.