AngularJS中RouteProvider的相对URL
我有一个网站,可能会在IIS的目录中放置。当我通过IISExpress在我的计算机上运行应用程序时,路由是相对于基本URL的,因此我可以按如下方式定义路由:AngularJS中RouteProvider的相对URL,angularjs,relative-path,angularjs-routing,Angularjs,Relative Path,Angularjs Routing,我有一个网站,可能会在IIS的目录中放置。当我通过IISExpress在我的计算机上运行应用程序时,路由是相对于基本URL的,因此我可以按如下方式定义路由: $routeProvider.when("/home", { controller: "homeController", templateUrl: "/app/layout/myView.html" }); 这为我提供了以下URL: 当我将此网站发布到我们的服务器时,我有以下URL: 但是,我一直收到一个错误,无法加载
$routeProvider.when("/home", {
controller: "homeController",
templateUrl: "/app/layout/myView.html"
});
这为我提供了以下URL:
当我将此网站发布到我们的服务器时,我有以下URL:
但是,我一直收到一个错误,无法加载模板:/app/layout/myView.html。当我看Fiddler时,我可以看到它试图从而不是从中拉入模板。我已尝试将templateUrl重写为../app/layout/myView.html、~/app/layout/myView.html和.././app/layout/myView.html。不管我做什么,我最终还是尝试从父文件夹而不是MyApp中提取它。我还尝试设置web.config设置,并使用它在templateUrl上添加前缀,但它似乎不希望在加载模板之前运行该代码。最后,我尝试为templateUrl设置一个函数,但是我在web.config文件中存储该函数的方式会在提取信息时产生时间问题
这似乎是一个常见的问题,我把它弄得过于复杂了。有没有办法使其成为相对URL?您应该将以下内容添加到HTML的头部:
<base href="MyApp/" />
有关更多详细信息,请参阅。如果我正确理解了您的问题,您希望导航到主拾取MyApp/app/layout/myView.html。首先,你不需要/app/layout/myView.html,app/layout/myView.html是正确的。其次,如果您的“MyApp”文件夹包含应用程序,请尝试templateUrl:MyApp/app/layout/myView.html或templateUrl:../app/layout/myView.htm问题是,我无法事先知道“MyApp”的名称,因此我必须找出并在投入生产后更改所有代码。我一直在寻找一种方法,把它放在一个位置,以后不必重新编译任何东西。谢谢!我可以通过web.config文件中的设置以编程方式设置此选项。