2017-02-19 8 views
0

Fig 1が原因パス相対性理論の問題に急行サーバーから

を角度2 index.htmlファイルを提供することはできませんこれは、以下の画像は時に問題を示し、角度、クライアントのフォルダ enter image description here

と私のアプリのフォルダ構造でありますエクスプレスサーバーから角度アプリのインデックスファイルをサーバーに送り、すべての取得はエクスプレスサーバーアプリケーションに関連しています。 enter image description here

これは誰もが解決策を見つけることができるindex.jsサーバコード

var express = require('express'); 
var app = express(); 
var path = require('path'); 


app.listen(3000,function(){ 
console.log('Server started on port 3000'); 
}); 

app.get('/',function(req,res){ 
res.sendFile(path.join(__dirname,'angular-client')+'/src/index.html'); 
}); 

のですか?

+0

[express jsを使用して簡単なhtmlサーバーを作成する方法](http://stackoverflow.com/questions/24517753/how-to-create-a-simple-html-server-using-express-js)の可能な複製) –

+0

私は上記の質問を読んで、それは同じではありません。インデックスファイルを提供するとき、角度フォルダ内のjsおよびcssファイルは、ルートエクスプレスフォルダからの相対パスです。しかし、与えられたパスは、角度のあるフォルダに相対的です。私は多くの例を確認しました。すべてsrcフォルダの外側にインデックスファイルがあります。または、2つのサーバーがあり、1つは角型およびその他のフォルダーノード用であり、独立して実行されます。 – JimmyJ

+0

"../../node_modules/*"のようなパスで試してください –

答えて

0

あなたの画像内のルートはGET /を処理します(応答としてindex.htmlを提供します)。

まず、GET /styles.cssをキャッチするルートが必要です。それから応答としてstyles.cssを提供する必要があります。

express.staticはどちらもあなたのためになります(リンクのドキュメントを参照)。

あなたはTODOMEANAPPディレクトリ(node TODOMEANAPP/server.js、たとえば、とは対照的に)、次のコードは動作するはずですからnode server.jsを実行すると仮定すると:しかし、あなたはsrc="src/systemjs.config.js"href="src/styles.css"src="systemjs.config.js"href="styles.css"を変更する必要があります

app.use(express.static('angular-client')); 

+0

実際、index.html内のすべてのファイル呼び出しがsrc/である必要はありません。しかし、次に起こるのは、アプリのコンポーネントとモジュールが、角度のないルートであるサーバーのルートに対して相対的に呼び出されるということです。 – JimmyJ

+0

zone.js:1960 GET http:// localhost:3000/src/app/app.module 404(見つかりません)。これは私が持っているエラーです。 – JimmyJ

+0

express.staticドキュメントから: "express.static関数に与えるパスは、ノードプロセスを起動したディレクトリからの相対パスです"。 'node server.js'を' TODOMEANAPP'から実行するとします。あなたが 'GET src/styles.css'を要求したとします。 'app.use'を押すと、' express.static'は 'src/styles.css'を' TODOMEANAPP/angular-client'に追加し、 'TODOMEANAPP/angular-client/src/styles.css'を探します。あなたのディレクトリにあるファイルであるので、そのファイルを応答として扱います。 –

関連する問題