我有一个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
并请求延迟加载的路由,您将得到错误。
答案 0 :(得分:0)
我强烈建议您更新项目,以使用Angular的最新稳定版本和@ nguniversal / express-engine。如果这解决了您的问题,或者由于某种原因您无法更新项目,请与我联系。