在用Angular Universal主导SSR的每一天,我的工作结束时都面临着新问题,这些问题一直在阻止我的SPA被搜索引擎正确索引。
我正在使用Angular 5.2.11和所有依赖项在同一版本中。另外,我正在使用传输状态模块来阻止浏览器应用程序中的其他http调用。
我注意到的问题是,当我执行http get / post请求以检索结果数组并将该数组分配给要使用* ngFor指令呈现为列表的组件变量时,服务器将呈现此列表不完整。每次重新加载页面时呈现的结果数都是随机的,从几乎3到小于整个数组的长度。
这很糟糕,因为Google不会知道我所有现有的url,因为每次尝试都可以看到不完整且具有随机数量的结果列表。
我正在ngOnInit中发出此请求,并从服务中调用它,在组件中订阅该请求,并在收到成功响应时将响应分配给组件变量。
据我所知,Angular Universal中的* ngFor应该等待所有异步调用完成。我没有将异步管道与Observable一起使用,因为我需要在我的应用程序体系结构中手动触发此请求,但是我已经测试了这种方法,而且也无法正常工作。
有人知道如何使Universal Server应用程序始终从http异步调用中呈现完整列表吗?
谢谢!