什么是ASP.NET Core静态Web资产?
What are ASP.NET Core Static Web Assets?
HostBuilder.ConfigureWebHostDefaults()中發生了很多隱藏的魔術(最終稱為ConfigureWebDefaults)。 我想更好地了解它,因為我找不到有關它的文檔。
此代碼似乎正在加載一些靜態文件。什么是靜態網絡資產,為什么我們需要它們?這與將靜態資產嵌入Blazor的庫有關嗎?
1 | builder.ConfigureAppConfiguration((ctx, cb) => |
?靜態Web資產是可以從Razor類庫(RCL)獲得的靜態文件:
An RCL may require companion static assets that can be referenced by the consuming app of the RCL. ASP.NET Core allows creating RCLs that include static assets that are available to a consuming app.
UseStaticWebAssets使用清單文件(如果未通過IConfiguration進行設置,則為{environment.ApplicationName}.StaticWebAssets.xml)插入其他文件提供程序(StaticWebAssetsFileProvider的實例),以確定從路徑到基本路徑的映射列表。
例如,當使用ASP.NET Core Identity UI RCL時,應用程序的清單文件看起來像這樣:
1 | <StaticWebAssets Version="1.0"> |
所有這些都以為IWebHostEnvironment.WebRootFileProvider設置的CompositeFileProvider結尾。該復合提供程序執行以下兩項操作:
照常處理
wwwroot/靜態文件(假定默認配置)。
將從
wwwroot/Identity請求的所有文件委派到Identity UI的提取的NuGet包內容文件夾。
正如您問題中的代碼片段所示,這僅在Development環境中運行時才會發生。發布您的應用程序時,有問題的文件會被復制到wwwroot文件夾中,就好像它們是您應用程序的一部分一樣。
總結
以上是生活随笔為你收集整理的什么是ASP.NET Core静态Web资产?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在 C# 中使用 反射
- 下一篇: C# 9 新特性——init only