我正在尝试在 AngularJS 中构建一个单页应用程序,并在 HTML5 模式下完成客户端路由。如果用户曾经在我的网站上为某个页面添加书签,我知道我需要一个基本的服务器端路由方案,但我真的希望它始终提供我的单个主页并将相同的 URL 传播到客户端路由部分。
这个包罗万象的路由完美地适用于只有一层深度的简单 URL:
routes.MapRoute(
"Default", // Route name
"{*catchall}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
示例网址:
http://myapp.com/moreInfo
http://myapp.com/contactUs
“moreInfo”和“contactUs”只是 Angular 中的命名路由。单页应用程序的唯一真正入口点是http://myapp.com。到目前为止,这一切都非常顺利。
但是,当我尝试深入多条路线时,应用程序会进入无限循环:
http://myapp.com/user/5
这是因为我的服务器端路由不足以将“user/5”URL“传递”到我的客户端应用程序吗?我是否需要做任何特别的事情来确保无论 URL 的嵌套有多深,它都能正确地传递给我的 SPA?