我正在开发一个涉及多个单页应用程序的项目,这些应用程序托管在单个.Net Core 1.0 Web应用程序上.
目标是对每个SPA进行分区,使它们全部分开存在,每个SPA都有自己的视图和控制器.
在Startup.cs中,我使用Microsoft.AspNetCore.SpaServices MapSpaFallbackRoute传递到SPA的深层链接(在本例中为Angular 2),因此MVC不会混淆并在页面刷新时抛出404.
当我在MapSpaFallbackRoute中手动设置Controller时,我一次为一个SPA工作,但我无法找到为每个SPA控制器有条件地设置它的方法.
我假设Mapwhen()和Run()的组合将我带到我需要的位置,但我似乎无法使语法正确.
假设SPA被命名为'Dash1','Dash2'等.以下后备路由适用于Dash1:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Dash1", action = "Index" });
});
Run Code Online (Sandbox Code Playgroud)
我试过这个:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
app.Map("/Dash1", HandleDash1);
}
private static void HandleDash1(IApplicationBuilder app)
{
app.UseMvc(routes =>
{
routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Dash1", action = "Index" });
});
}
}
Run Code Online (Sandbox Code Playgroud)
...但是当我导航到Dash1并尝试刷新页面时,浏览器会将'/ Dash1 /'添加到所有http请求中并中断所有内容.
single-page-application asp.net-core-mvc asp.net-core-1.0 asp.net-core-middleware angular
我正在开发一个多层Web应用程序,该应用程序由Azure App Service Environment中的多个Web API组成.
最近在升级到VS2017之后,我注意到在我发布新代码(来自VS)之后,应用程序将随机无法更新.远程调试器无法正确加载,旧代码将在发布后继续运行.
我在发布设置中选择"删除目的地的其他文件".
重新启动应用程序通常会暂时解决问题,但有时我必须停止并重新启动每个应用程序.
VS或Azure中是否有任何可能影响此行为的新设置,或者是否无法正常工作?
angular ×1