一个Blazor.Server应用,作为一个项目的组件被启动应用调用时
原本静态文件只需要通过类似 /css/site.css 就能访问,作为组件后需要在路径前加上 /_content/MyBlazor 才能访问,请问这部分有办法能去掉吗?感觉暴露应用名称特别丑。
另外分散在项目里的css文件会被统一打包成MyBlazor.style.css,但是这个文件实际上并不存在。作为组件调用后,这个文件及即使加上 /_content/MyBlazor 前缀也无法正常访问,请问这个有办法解决吗?
建立项目大致操作如下:
模板新建的Blazor应用,编译运行,可以正常访问。
修改Blaozr项目的OutputType改为Library。去掉Program.cs和appsetting.json文件,改造startup.cs文件如下
public static class StartupExtension { public static void AddMyBlazor(this IServiceCollection services) { services.AddRazorPages(); services.AddServerSideBlazor(); services.AddSingleton<WeatherForecastService>(); } public static void UseMyBlazor(this IApplicationBuilder app) { app.UseStaticFiles(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapBlazorHub(); endpoints.MapFallbackToPage("/_Host"); }); } }
然后新建另一个空的项目,在新项目的startup中调用上面AddMyBlazor,UseMyBlazor两个方法。
修改MyBlazor中的_Host.cshtml的引用路径,加上 /_content/MyBlazor 前缀,启动后绝大多数JS和CSS加载正常,但是MyBlazor.style.css始终404,尝试过各种路径仍404。发布后可以在wwwroot下找得到该文件,单仍无法访问