2016-05-10 7 views
0

アプリケーションをデフォルトWebサイトに追加したWebサーバーにアプリケーションを展開しようとしています。私は真実であるとdefaultJSExtensionsをベースURLを設定するためにSystem.jsを使用して有効:サーバーがnode_modulesフォルダを探していません

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

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

このような「/ fooの/ node_modulesとして、私のjsファイルを検索しようとしているときに問題が来る

/angular2/core.js " node_modulesフォルダを検索していないので、単に "/foo/angular2/core.js"を探しています。

私のローカル環境では、これはすべて正常に動作し、自動的に "node_modules"フォルダを探しますが、サーバーに公開すると、それはdoesntです。

私はsystem.configにpathsオプションを追加するいくつかの解決策を見ましたが、ローカルWebサーバーでこれを行う必要はないのですが、私はテストサーバーで何をするのか不思議です。私のローカル環境に「foo」というサイト名がないからですか?

サーバーにnodejsをインストールする必要はありますか?

ありがとうございました。

+0

はあなたのメインのHTMLファイル内の任意のベースパスを追加したシステムの設定でマップを導入する必要がありますか? のように、Gulp \ Gruntのようなビルドツールを使ってファイルを公開していますか? –

+0

私は単にVisual Studio 2015を使って今すぐ公開しています。上記のコードで示されている以外の基本パスは追加していません。 – Bohms27

答えて

0

あなたは

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

この仕組みは完全にはわかりません。私はbaseurl '/ foo'を使いました。はどういう意味ですか?あなたは私にこれを使用する例を教えてもらえますか? これは私にはまだそれがローカルではなく、サーバー上ではうまく動作しない理由は答えません。なぜマップをサーバーに追加する必要がありますか? – Bohms27

+0

あなたはあなたのコンテンツがレンダリングされる場所からベースラインを提供しなければなりません、すべてのパスがそれに関連します。したがって、baseUrlを追加すると、サーバー構成を模倣します。そうしないと、マップ構成を使用して角度ソースファイルのパスをマップする必要があります。あなたはどこでbaseUrlを使って解決できますか? –

+0

baseURLを追加すると、System.importを手助けしました。私はちょうどなぜ私のローカル環境で私はこれらのマッピングが必要ではないが、私はサーバー上で正確には不明です。 Webサイトを一般的なサーバーに展開することにはあまり慣れていません。 – Bohms27

関連する問題