MVC Razor Pages 托管 Angular 4 个应用
MVC Razor Pages hosting Angular 4 app
我在 MVC 核心 2 站点中托管一个 Angular 应用程序。我正在使用 Razor Pages。
即localhost:4000/MyRazorPage
当我导航到托管应用程序的 Razor 页面时,应用程序加载并正常运行,包括处理应用程序内的路由。
即localhost:4000/MyRazorPage/home
即 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" });
感谢帮助
我最终将此代码添加到我的 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.MapWhen 函数表示当路由中包含 "Reader" 时更改 spa 回退。您将为每个应用程序执行此操作。
我将每个应用托管在站点中各自的区域中
我在 MVC 核心 2 站点中托管一个 Angular 应用程序。我正在使用 Razor Pages。
即localhost:4000/MyRazorPage
当我导航到托管应用程序的 Razor 页面时,应用程序加载并正常运行,包括处理应用程序内的路由。
即localhost:4000/MyRazorPage/home 即 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" });
感谢帮助
我最终将此代码添加到我的 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.MapWhen 函数表示当路由中包含 "Reader" 时更改 spa 回退。您将为每个应用程序执行此操作。
我将每个应用托管在站点中各自的区域中