2017-04-13 89 views
0

我有一個用Angular2編寫的簡單的應用程序,沒有外部調用任何資源。我有大約10個組件,在獨立的文件中有自己的html和css。我使用gulp創建dist包並將其部署到最多有10個併發請求的測試環境中。Angular2 systemjs拋出503s

如果我打開網站,在獲取實際頁面加載之前,我經常得到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>] 

然後一堆額外的503s當試圖加載不同的js文件。根據託管服務提供商的網站是經常在最大併發請求但我看到所有的時間「加載」文本,因此我假設它與實際託管本身無關,但與我的網站的設置,因爲index.html服務。我已經閱讀過不同的文章,rxjs可能會負責進行http調用,但在這種情況下,我正在使用它。如果我創建一個將所有這些組合起來的單個js,它會有幫助嗎(正如我在其他地方所看到的)?我想知道角是否試圖並行加載所有文件(css,html和js),這是根本原因?

回答

0

是的,如果您對託管服務提供商的最大併發請求數有閾值限制,捆綁應該有所幫助。

你可以嘗試臨時增加閾值嗎?在你花費更多時間之前,這可能是證明理論的最簡單方法。

如果確認,那麼繼續捆綁到一個單獨的js文件中,或者爲框架中的所有內容(平臺瀏覽器,angular,systemjs)和一個特定於您的應用程序代碼的文件打包。

+0

是的,我正在創建兩個文件,一個用於框架中的所有內容,另一個用於用戶代碼。我會讓你知道,如果這有效 –