Firebase SSR:延迟加载的路由不起作用

时间:2020-08-17 13:20:44

标签: angular firebase

我有一个Angular 8项目,其中包含一条延迟加载的路线。我已经通过ng add @nguniversal/express-engine命令添加了Universal。构建和提供该应用程序可以正常工作。

我添加了Firebase并通过云功能设置了SSR,部分遵循了angularfire repo上似乎已经过时的指南。

使用serve:ssr服务该应用程序,效果很好,并且请求延迟加载的路由也可以工作。但是,当使用firebase serve进行测试时,它只有在您请求延迟加载的路由(例如,在延迟加载的路由上刷新页面)后才有效,然后会引发错误:

ERROR { Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'ssr-demo-b3ef3/us-central1/ssr'
>  Error: Cannot match any routes. URL Segment: 'ssr-demo-b3ef3/us-central1/ssr'
>      at router_ApplyRedirects.noMatchError (/Users/jamieperkins/Web-projects/GitHub/ngx-countup-with-ssr/functions/dist/webpack/server.js:149267:16)
>      at catchError_CatchSubscriber.urlTrees$.pipe.catchError [as selector] (/Users/jamieperkins/Web-projects/GitHub/ngx-countup-with-ssr/functions/dist/webpack/server.js:149231:28)

部署后,当请求延迟加载的路由时,该函数将崩溃。

此回购(firebase分支)中的代码全部在github上:https://github.com/inorganik/ngx-countup-with-ssr/tree/firebase

要进行复制,请克隆存储库并执行以下操作:

npm i
npm run build
npm run serve:ssr

应该一切正常。但是你尝试

firebase serve

并请求延迟加载的路由,您将得到错误。

Angularfire问题here。 firebase-tools问题here

1 个答案:

答案 0 :(得分:0)

我强烈建议您更新项目,以使用Angular的最新稳定版本和@ nguniversal / express-engine。如果这解决了您的问题,或者由于某种原因您无法更新项目,请与我联系。