我正在尝试将我的MVC5 / WebAPI2 REST服务配置为重定向到位于IIS上同一站点中的子文件夹上的单独Angular SPA。
我尝试在网络文件夹的根目录中添加Angular Index.html,但这不起作用。我可以通过转到
按名称访问该文件http://<hostname>/index.html
但是,我显然不想要文件名。我只想要默认的根(/)加载角度应用程序。目标是这样的 -
http://<hostname> --> Angular app (angular router takes over for it's internal routes
http://<hostname>/api --> The REST service
答案 0 :(得分:0)
您可以在RouteConfig
中添加新路线,将index.html
映射到默认的mvc入口点。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.RouteExistingFiles = true;
routes.MapRoute(
name: "Home",
url: "index.html",
defaults: new { controller = "Home", action = "Index", page = UrlParameter.Optional }
);
}
}
答案 1 :(得分:0)
基于@Cybermaxs的说法,因为我要完全没有Razor视图的SPA(除了帮助区域),这对我有用 - (基本上是cybermaxs,但是我必须注释掉默认的mvc)路由)。
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.RouteExistingFiles = true;
routes.MapRoute(
name: "Home",
url: "index.html",
defaults: new { controller = "Home", action = "Index", page = UrlParameter.Optional }
);
/* routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }
);*/
//point people to SPA
routes.IgnoreRoute("apps");
routes.IgnoreRoute("");