发布我的webapi项目aspnet web api angularjs

时间:2016-04-24 10:07:29

标签: angularjs iis asp.net-web-api

我想将我的项目发布到IIS中的一个文件夹,但路由设置的方式与内部循环相似,而不是找到路径。

enter image description here

我在已经

的文件夹中发布了该项目
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中运行?

2 个答案:

答案 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"