2016-04-29 5 views
1

Ich habe eine URL wie diese: http://www.foo.com/bar/ (Bar ist mein Anwendungsname in IIS für den Zugriff auf diese Anwendung unter der Standardwebsite).SystemJS Typescript-Referenzpfade auf System.import mit einer Anwendung, die der Site hinzugefügt wurde

In MVC und Dateien importieren und wie Stylesheets in meinem head-Tag, kann ich normalerweise "~/Content/foo.css" verwenden.

In SystemJS versuche ich meine main.js Datei zu importieren, die in "Scripts/typescript/main.js" befindet, aber ich brauche es in Bezug auf meinen Anwendungsnamen (Balken oben).

Hier ist, was ich jetzt haben:

<script> 
 
    System.config({ 
 
     packages: { 
 
      './Scripts/typescript': { 
 
       format: 'register', 
 
       defaultExtension: 'js' 
 
      } 
 
     } 
 
    }); 
 

 
    System.import('./Scripts/typescript/main.js').then(null, console.error.bind(console)); 
 
    </script>

Das Problem ist, das an der Wurzel sieht, so ist es www.foo.com/Scripts/typescript/main zuzugreifen versucht, .js, wenn ich es wirklich brauche, um auf www.foo.com/bar/Scripts/typescript.main.js zuzugreifen.

Ich möchte den App-Namen nicht fest in meine URL codieren, weil er nicht funktioniert, wenn der Name der App anders ist oder nicht existiert.

Kann mir jemand helfen, damit er weiß, wie er auf den richtigen Pfad zugreifen kann?

+0

Es gibt eine Verwirrung über den Anwendungsnamen (Sie verwenden foo und bar als App-Name). –

Antwort

1

Sie müssen die folgende Eigenschaft System.baseURL festlegen.

Sie können es in dem Objekt, das an die Methode config übergeben wird.

System.config({ 
    baseURL: '/foo', 
    packages: { 
     './Scripts/typescript': { 
      format: 'register', 
      defaultExtension: 'js' 
     } 
    } 
}); 
+0

Aber was, wenn sich der Name der App ändert oder verschwindet? Dann muss ich jedes Mal meinen Code ändern. – Bohms27

+0

@ Bohms27 Ja, es sei denn, Sie können den Namen der App dynamisch abrufen und irgendwie in diese Datei einfügen. –

+0

Ich habe dies getan und das Problem damit behoben, dass ich meine "Scripts/typescript/main.js" -Datei nicht finden konnte, aber jetzt hat es Probleme mit node_modules und so. Zum Beispiel sucht es nach "foo.com/bar/angular2/core.js", aber kann es nicht finden, weil es wirklich in der "foo.com/bar/node_modules/angular2/core.js" ist. Muss ich nodejs auf meinem Webserver installiert haben? – Bohms27

Verwandte Themen