我在MVC核心2网站上托管一个Angular应用程序。我正在使用Razor Pages。
即。本地主机:4000 / MyRazorPage
当我导航到托管该应用的Razor页面时,该应用加载并正常运行,包括在应用内处理路由。
即。本地主机:4000 / MyRazorPage /家 即localhost:4000 / MyRazorPage / document / 1
我遇到的问题是深入链接到应用
即。 localhost:4000 / MyRazorPage / document / 1直接输入浏览器的地址栏
我预计Startup中的这个会使它工作但似乎没有。可能是我使用了错误的操作,因为Razor Pages与MVC的工作方式略有不同
routes.MapSpaFallbackRoute(
name: "MyRazorPage-fallback",
defaults: new { area = "", controller = "MyRazorPage", action = "Index" });
帮助表示赞赏
答案 0 :(得分:0)
我最终将此代码添加到我的startup.cs文件
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
app.MapWhen(context => context.Request.Path.Value.StartsWith("/Reader"), builder =>
{
builder.UseMvc(routes =>
{
routes.MapSpaFallbackRoute("reader-fallback", new { area = "Reader", controller = "Default", action="Index" });
});
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areaRoute",
template: "{area:exists}/{controller=Default}/{action=Index}/{id?}");
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id?}");
});
}
app.Map当函数显示当路由中有“Reader”时,更改spa回退。你会为每个应用程序执行此操作。
我将每个应用程序托管在网站的自己的区域中