首页 新闻 会员 周边

.NET5 Blazor作为类库时,静态文件引用问题

0
[待解决问题]

一个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下找得到该文件,单仍无法访问

写代码的相声演员的主页 写代码的相声演员 | 小虾三级 | 园豆:517
提问于:2021-03-16 15:32
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册