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



我想在CMS(Telerik Sitefinity(中托管SPA。此应用程序将托管在url的"小部件"中,如http://host/foo/bar/product/{SPA的根}

我将使用ui路由器来处理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/

http://host/foo/bar/product/因为路由器将添加到末尾。这既有用,也可能是一个缺陷(请参阅此处(。TemplateURL也会以同样的方式运行,所以你可以继续!

来自文档:

基本href约束

如果当前URL在指定为基本href的URL之外,$location服务将无法正常工作。这可能会产生微妙而混乱的后果。。。

考虑一个基本href设置如下:<base href="/base/">(即应用程序存在于名为/base的"文件夹"中(。URL/base实际上在应用程序之外(它指的是在根/文件夹中找到的基本文件(。

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

请参阅https://github.com/angular/angular.js/issues/14018了解更多信息。

--AngularJS开发者指南-使用$location

最新更新