在标准的Blazor服务器应用程序中,似乎除开发环境以外的任何内容都未正确引用_content文件夹项。例如,此引用在任何非开发环境中均失败:
来自_Host.cshtml:
hello my name is
slim shady
对于Repro,以Blazored-toast lib为例(但任何静态文件引用似乎都存在此问题):
创建一个新的Blazor Server项目(新的dotnet blazorserver)
我缺少什么可以使该引用在其他环境中工作?
答案 0 :(得分:3)
发布应用程序时,使用Razor类库中的静态资产即可立即使用。您只需像以前一样通过<link href="..." />
包含静态内容即可。
但是,从构建输出(dotnet运行)或通过Visual Studio中的F5运行应用程序时,必须确保为给定环境启用了StaticWebAsset功能。
默认情况下仅在开发环境中启用它。您可以通过确保调用UseStaticFiles
并在UseStaticWebAssets
中调用Program.CreateHostBuilder
来无条件打开该功能。
因此,请确保您使用的应用具有:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseStaticFiles();
...
}
在您的Program.cs中,您应该拥有
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStaticWebAssets();
webBuilder.UseStartup<Startup>();
});