2016-05-10 11 views
0

Ich versuche, meine Anwendung auf einem Webserver bereitzustellen, auf dem eine Anwendung zur Standardwebsite hinzugefügt wurde. Ich benutzte System.js die baseURL einzustellen und ermöglichte es den defaultJSExtensions um wahr zu sein:Der Server sucht nicht nach dem Ordner "node_modules"

<script> 
 
     System.config({ 
 
      baseURL: '/foo', 
 
      defaultJSExtensions: true   
 
    }); 
 

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

Das Problem kommt, wenn es versucht, für meine js Dateien, wie zum Beispiel „/ foo/node_modules suchen /angular2/core.js ". Es sucht nicht nach dem Ordner node_modules, sondern sucht einfach nach "/foo/angular2/core.js".

In meiner lokalen Umgebung funktioniert das alles einwandfrei, es sucht automatisch nach dem Ordner "node_modules", aber wenn ich es auf dem Server veröffentlichen, tut es das nicht.

Ich habe einige Lösungen gesehen, um die Option paths zu meiner system.config hinzuzufügen, aber ich bin neugierig, warum ich das nicht in meinem lokalen Webserver tun muss, aber ich mache es in meinem Testserver? Liegt es daran, dass ich den Site-Namen "foo" in meiner lokalen Umgebung nicht habe?

Muss ich nodejs auf dem Server installieren?

Danke für jede Hilfe.

+0

haben Sie hinzugefügt jeden Basispfad in Ihrer Haupt-HTML-Datei vorstellen? Verwenden Sie wie ein Build-Tool wie Gulp \ Grunt, um Dateien zu veröffentlichen? –

+0

Ich verwende Visual Studio 2015 einfach zur Veröffentlichung. Ich habe keine anderen Basispfade als die oben in meinem Code gezeigten hinzugefügt. – Bohms27

Antwort

0

müssen Sie Karte in der Systemkonfiguration

System.config({ 
     baseURL: '/foo', 
     defaultJSExtensions: true, 
     map: { 
      "<angular import>": "<adjust URL based upon your structure>node_modules/angular2/core.js" 
     }  
     }); 
+0

Ich bin mir nicht ganz klar, wie das funktioniert. Ich habe das Basismodell '/ foo' benutzt. Was meinst du mit . Können Sie mir ein Beispiel dafür geben? Das antwortet mir immer noch nicht, warum es lokal gut funktioniert, aber nicht auf dem Server. Warum muss ich die Karte auf dem Server hinzufügen? – Bohms27

+0

Sie müssen die Baseurl angeben, von wo aus Ihre Inhalte gerendert werden. Alle Pfade werden darauf bezogen. Wenn Sie also baseUrl hinzufügen, wird es Ihre Serverkonfiguration nachahmen, andernfalls müssen Sie den Quellpfad der Quelldatei mit der Kartenkonfiguration abbilden. Beantwortet dies Ihre Frage? Wo können Sie mit BaseUrl auflösen? –

+0

Das Hinzufügen der baseURL half mit System.import piece. Ich weiß nur nicht genau, warum ich diese Mappings in meiner lokalen Umgebung nicht benötige, sondern auf dem Server, den ich mache. Ich bin nicht wirklich vertraut mit der Bereitstellung von Websites auf einem Server im Allgemeinen. – Bohms27

Verwandte Themen