2017-04-13 58 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

是的,我正在创建两个文件,一个用于框架中的所有内容,另一个用于用户代码。我会让你知道,如果这有效 –