适用情境:前台采用MVC,API等。后台采用Blazor Server应用。
前台访问URL: http://域名/ 这里是mvc
后台访问URL: http://域名/admin 这里是Blazor server
首先声明的是 这种方式不是在二级目录部署,只是URL上区别..比较适合MVC做Api或网站前台页面,Blazor server做后台管理,或者是同一个站点部署多个Blazor Server应用的情况。
1,打开Program.cs,对照收下内容,没有则添加
builder.Services.AddControllersWithViews(); //Mvc用的
builder.Services.AddRazorPages(); //RazorPage用的
builder.Services.AddServerSideBlazor(); //Balazor server用的
var app = builder.Build();
app.UseRouting();
app.MapDefaultControllerRoute(); //Mvc路由
app.MapRazorPages();
app.MapBlazorHub();
//下面是增加的
app.MapFallbackToPage("/admin/{*path:nonfile}", "/_host"); //这里的admin就是会在Url中出现的目录
2,修改Pages/_Host.cshtml 的路由为其它任意路由,不与MVc的相冲突就行
@page "/adminindex"
3,修改Pages/Index.razor文件的路由为 "/admin/Index"
@page "/admin/index"
4,其它Blazor页面路由均由 /admin 开头即可..
这样,就能通用http://***.com 访问前台Mvc页面或Api,,通过 http://***.com/admin 访问Blazor Server应用了(如,后台 等)
如果遇到什么不明白的可以留言反馈,我会为大家解答。