使用SSR的Angular 6路由负载

时间:2018-08-02 14:18:39

标签: angular angular-services angular-universal ssr

我刚刚将Angular 5应用程序迁移到Angular 6,并且创建了一个全新的组件,我对此有疑问。我的应用已配置SSR,可以看到渲染正常。

我的新组件在ngOnInit上执行以下操作:

  1. 使用标准get并解决承诺来调用http
  2. 检查是否isPlatformBrowser要订阅window.resize事件

如果我导航至主页www.website.com,然后导航至上述的角度组件,则一切正常。假设路线为www.website.com/myComponent

但是,如果我打开新的浏览器并执行www.website.com/myComponent,则应用程序将挂起。最终,网络服务器返回504,但是API(我进行HTTP调用的地方)没有被点击,我可以在应用程序的日志中看到:Http failure response for (unknown url): 0 Unknown Error

我正在研究可能的情况,并将OnInit组件与另一个执行类似操作的组件进行了比较。区别在于,被调用的HTTP也封装在isPlatformBrowser代码内。

我的问题是:从现在开始,是否需要将所有HTTP调用都包装在isPlatformBrowser中以用于SSR?可能是其他情况发生了,例如某个地方的错误无法正确解决平台浏览器的问题,并且由于这是异步代码(正在等待Promise)而中断了HTTP调用或使其处于错误状态?

我的Angular版本是6.1.0 SSR 6.0.0

0 个答案:

没有答案