AngularJS ui路由器如何确定应用程序的根URL?

时间:2018-07-12 14:51:27

标签: angularjs angular-ui-router

我想在CMS(Telerik Sitefinity)内托管一个SPA。该应用将托管在网址为“ {widget””的小工具中,网址为http://host/foo/bar/product/ {SPA的根}

我将使用ui-router处理url。如果我按如下所示配置路由状态,URL'/'将解析为什么?

MyApp.config(function($stateProvider){
   var homeState = {
       name: 'home',
       url: '/',
       templateUrl: '/templates/home.html'
   }
   $stateProvider.state(homeState);
}

这条通往http://host/http://host/foo/bar/product/的路线吗?

templateUrl也有同样的问题: 我需要它映射到http://host/foo/bar/product/

2 个答案:

答案 0 :(得分:0)

它将是http://host/foo/bar/product/,因为路由器将添加到末尾。这既有用,也可能是一个缺陷(see here)。 TemplateURL的行为也相同,所以您一切顺利!

答案 1 :(得分:0)

从文档中:

  

基本href约束

     

如果当前URL在作为基本href给出的URL之外,则$location服务将无法正常运行。这可能会产生令人困惑的后果……

     

请考虑如下设置的基本href:<base href="/base/">(即,该应用程序存在于名为“ /base”的“文件夹”中)。 URL /base实际上在应用程序外部(它是指在根目录/文件夹中找到的基本文件)。

     

如果您希望能够通过诸如/base之类的URL导航至应用程序,则应确保已将服务器设置为将此类请求重定向到/base/

     

有关更多信息,请参见https://github.com/angular/angular.js/issues/14018

     

— AngularJS Developer Guide - Using $location