2016-04-24 1 views
1

Ich möchte mein Projekt in einem Ordner in IIS veröffentlichen, aber mit den Routen eingerichtet, wie es ist Ich bekomme, was wie eine interne Schleife aussieht und nicht den Pfad finden.Veröffentlichen Sie mein Webapi-Projekt aspnet web api angularjs

enter image description here

veröffentlichte ich das Projekt in einem Ordner bereits

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/" 
}); 

Und eine Ressource Setup als

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" 

folgen Dies sind meine Routen

$urlRouterProvider.otherwise("/");//default url 
     $stateProvider.state("home", { 
      url: "/", 
      templateUrl: "/templates/welcomeView.html" 
     }).state("productList", { 
      url: "/products", 
      templateUrl: "/templates/productListView.html", 
      controller: "ProductListController" 
     }). 

Wie kann ich dieses Beispielprojekt so ändern, dass es im veröffentlichten Ordner auf dem IIS und nicht in localhost auf Visual Studio ausgeführt wird?

Antwort

2

Ein Schrägstrich am Anfang eines Pfads macht diesen Pfad relativ zum Stamm der Site. Also in Ihrem Fall:

templateUrl: "/templates/productListView.html" 

immer http://myhostname/templates/productListView.html beziehen, in denen egal subpath ist Ihre Website gehostet.

den ersten Schrägstrich entfernen kann Ihr Problem lösen:

templateUrl: "templates/productListView.html" 

Auch zu Ihrer $resource Konfiguration suchen:

return $resource(appSettings.serverPath + "/api/products/:id" 

Und Ihre AppSettings Konstante:

serverPath:"http://ct-dx-ariang/AspNetWebApi/" 

Scheint mir, dass Sie zwei aufeinanderfolgende Schrägstriche zu Ihrem $resource Pfad hinzufügen. Der resultierende Pfad lautet: http://ct-dx-ariang/AspNetWebApi//api/products/:id

1

Das sind meine Routen

Ziemlich hartcodiert. Stellen Sie sicher, dass Sie die gleiche Konstante auch für alle Ihre Vorlagen verwenden.

templateUrl: appSettings.serverPath + "/templates/welcomeView.html"