2017-04-13 14 views
0

私はAngular2で書かれた簡単なアプリを、あらゆるリソースへの外部呼び出しなしで持っています。私は別々のファイルに独自のhtmlとcssを持つおよそ10のコンポーネントを持っています。私はgulpを使ってdistパッケージを作成し、10個の同時リクエストが最大のテスト環境にデプロイします。Angular2 systemjs throws 503s

私がサイトを開くと、実際のページが読み込まれる前に、頻繁に2回または3回(爽やかに)503回表示されます。私が得るエラーは:

(index):23 Error: Fetch error: 503 Service Unavailable 
    Instantiating http://test.site.com/vendor/@angular/common/bundles/common.umd.js 
    Loading http://test.site.com/vendor/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js 
    Loading http://test.site.com/app/main.js 
    Loading app 
    at /vendor/systemjs/dist/system.src.js:1500:13 [<root>] 
    at Zone.run (zone.js:125) [<root> => <root>] 
    at /vendor/zone.js/dist/zone.js:760:57 [<root>] 
    at Zone.runTask (zone.js:165) [<root> => <root>] 
    at drainMicroTaskQueue (zone.js:593) [<root>] 

そして、別のjsファイルをロードしようとすると余分な503sの束です。ホスティングプロバイダーによると、サイトはかなり頻繁にリクエストが最大同時実行されていますが、「ロード中」のテキストはすべて表示されるため、実際のホスティング自体とは関係ありませんが、 index.htmlが配信されます。私はrxjsがhttp呼び出しを行うときに責任を負うことができる別の記事を読みましたが、この場合は私はそれを使っています。もし私が(私が他の場所で読んだように)それらのすべてを組み合わせた単一のjsを作成すれば、それは役に立ちますか?角度がすべてのファイル(css、html、js)を並行して読み込もうとしているかどうかは不思議です。それが根本的な原因ですか?

答えて

0

はい、ホスティングプロバイダーからの最大同時リクエストに上限がある場合は、バンドルすることをお勧めします。

一時的にしきい値を上げようとすることはできますか?それはおそらく、あなたがそれにもっと時間を費やす前にその理論を証明する最も簡単な方法です。

これが確認されたら、単一のjsファイルにバンドルするか、フレームワーク内のすべてのもの(プラットフォームブラウザ、角度、systemjs)とアプリコード固有のものにバンドルしてください。

+0

はい、私は、フレームワーク内のすべてのものとユーザーコード用のものの2つのファイルを作成しています。それがうまくいくかどうか私に知らせます –

関連する問題