2017-06-13 1 views
6

角型CLIで生成された角型アプリケーションを開始しようとしていますが、デフォルトのapp-rootコンポーネントが読み込まれないようです。私はangle appとexpressサーバ間の接続にプロキシを使用していますが、同時に2つのスクリプトを実行しています。node bin/www express/node.js startとng serve --proxy-config proxy.config.json開始角度とプロキシ接続の作成このようになります(package.jsonの一部):なぜAngular 2がデフォルトのapp-rootコンポーネントを読み込まないのですか?

"scripts": { 
    "start": "concurrently --kill-others \"node bin/www\" \"ng serve --proxy-config proxy.config.json\"" 
} 

インデックス・ページがロード罰金が、app-rootコンポーネント(角CLI ng newから作成されたデフォルトのコンポーネントは、)をロードしないようだ。 enter image description here ここに私のnode.js/express useとルートがあります:

var express = require('express'); 
var router = express.Router(); 
var app = express(); 
var path = require('path'); 

app.use(express.static('./src/client/')); 
app.use(express.static('./')); 
app.use(express.static('./tmp')); 
app.use('/*', express.static(path.resolve('src/client/index.html'))); 

router.get('*', function(req, res) { 
    res.sendFile(path.resolve('src/client/index.html')); 
}); 

module.exports = router; 

そして、私のプロジェクトの構造(必要な場合): enter image description here

私は何を逃したのですか?デフォルトのapp-rootコンポーネントが読み込まれないのはなぜですか? (私はng serveを実行すると、必要に応じて角のホームページを開始し、コンポーネントはOKであるため、問題はどこかにあると思います)。

おかげで、事前

+0

を重複しています。それでも、srcフォルダではなく、buildフォルダから提供します。 –

+0

@TaylorAckley、私は明示的に起動し、デフォルトでdistという名前のビルドフォルダを使用しようとしましたが、同じ問題を抱えています(ただしすべてのスクリプトがロードされています)。 –

+0

@Ced、ここに私の受け取った 'index.html':https://ibb.co/czJe2kと私のネットワークタブ:https://ibb.co/hE3Jv5 –

答えて

5

にあなたはdist/フォルダafter calling ng build --prod (the --prod is important, as the default is --dev)の内容を提供しなければなりません。だから、それはこのようなものになるだろう:

"scripts": { 
    "start": "ng build --prod && node bin/www" 
} 

そして、多かれ少なかれ、あなたの特急スクリプト適応: `ンServe`を使用してExpressから提供

app.use(express.static('./dist')); 
app.use('/*', express.static(path.resolve('dist/index.html'))); 

router.get('*', function(req, res) { 
    res.sendFile(path.resolve('dist/index.html')); 
}); 
+0

あなたの提案はうまく見えますが、それは今、私は404エラーを取得しています。たぶんあなたはどこかのスペルが間違っていたり、答えに何かを含めるのを忘れていましたか?私はあなたの提案は非常に近いと感じています。言いたいことは、私がノード/表現に全く新しいことです。 –

+0

ああ、ええ、 'index.html'を追加するのを忘れました。それが動作するかどうか私に教えてください。 – acdcjunior

+0

私は試してみましたが、スクリプトを使ったindex.htmlはうまくロードされますが、空の 'app-root'要素がまだ残っています。しかし、私のビルド結果( 'dist'フォルダ)には' client/index.html'と5つの 'bundle.js'ファイルしか含まれていません。それらのすべては 'index.html'に含まれていますが、新しいタブでそれらの1つを開こうとすると、期待どおりのコードは表示されません。彼らは本当に含まれていないようだ。私はこれがもう一つの問題だと思っていますが、もしあなたがそれについて何か考えているなら、私に知らせてください。 –

関連する問題