我想将我的项目发布到IIS中的一个文件夹,但路由设置的方式与内部循环相似,而不是找到路径。
我在已经
的文件夹中发布了该项目angular.module("common.services", ["ngResource"])
.constant("appSettings",
{
//serverPath: "http://localhost:53967/"
//name of the computer and folder to which the project was published
serverPath:"http://ct-dx-ariang/AspNetWebApi/"
});
并设置资源如下
angular.module("common.services").factory("productResource", ["$resource", "appSettings", productResource])
function productResource($resource, appSettings) {
//return $resource(appSettings.serverPath + "/api/products/:search");
return $resource(appSettings.serverPath + "/api/products/:id"
这些是我的路线
$urlRouterProvider.otherwise("/");//default url
$stateProvider.state("home", {
url: "/",
templateUrl: "/templates/welcomeView.html"
}).state("productList", {
url: "/products",
templateUrl: "/templates/productListView.html",
controller: "ProductListController"
}).
如何修改此示例项目以使其在IIS上的已发布文件夹中运行,而不是在visual studio上的localhost中运行?
答案 0 :(得分:2)
路径开头的斜杠使该路径相对于站点的根目录。所以在你的情况下:
templateUrl: "/templates/productListView.html"
无论在哪个子路径中托管您的网站,始终会引用http://myhostname/templates/productListView.html
。
删除第一个斜杠可能会解决您的问题:
templateUrl: "templates/productListView.html"
另请查看您的$resource
配置:
return $resource(appSettings.serverPath + "/api/products/:id"
你的AppSettings
常数:
serverPath:"http://ct-dx-ariang/AspNetWebApi/"
在我看来,您正在向$resource
路径添加两个连续斜杠。生成的路径为:http://ct-dx-ariang/AspNetWebApi//api/products/:id
答案 1 :(得分:1)
这些是我的路线
相当硬编码。确保您在所有模板上使用相同的常量。
templateUrl: appSettings.serverPath + "/templates/welcomeView.html"