Angular2 systemjs抛出503s

时间:2017-04-13 20:26:27

标签: javascript angular gulp

我有一个用Angular2编写的简单应用程序,没有任何外部调用任何资源。我有大约10个组件,它们有自己的html和css在不同的文件中。我使用gulp创建dist包并部署到测试环境,其中我有10个并发请求作为最大值。

如果我打开网站,我经常会在获得实际页面之前获得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文件时出现了一堆额外的503。根据托管服务提供商的说法,网站经常处于最大并发请求范围内,但我总是看到&#34; loading&#34;因此,我假设它与实际托管本身无关,但与我的网站设置无关,因为index.html已提供。我在不同的文章中读到rxjs在进行http调用时可能会负责,但在这种情况下我会使用它。如果我创建一个结合所有这些的单个js(我在别处读过)会有帮助吗?我想知道angular是否试图并行加载所有文件(css,html和js)并且这是根本原因?

1 个答案:

答案 0 :(得分:0)

是的,如果您对托管服务提供商的最大并发请求有阈值限制,则捆绑应该会有所帮助。

您可以尝试暂时提高阈值吗?这可能是在您花费更多时间之前证明理论的最简单方法。

如果确认,则继续捆绑到单个js文件,或者可以用于框架中的所有内容(平台浏览器,angular,systemjs)以及特定于应用程序代码的文件。