角度通用。动态路由不会在服务器端渲染

问题描述 投票:0回答:2

我在使用角度通用的服务器端渲染动态路线时遇到问题。

例如:

{ 路径:'room/:slug', 组件:RoomDetailsComponent }

不会在服务器端渲染。

{ 路径:'房间/第一个房间',组件:RoomDetailsComponent }

将在服务器端渲染。

我找到了一些解决方案,例如从后端服务获取路由。我认为应该有更好、更少黑客的方法来做到这一点

angular routes server-side-rendering universal
2个回答
0
投票

也许您缺少 RouterModule 声明中的属性,因为它应该按预期工作。

这里我创建了一个 stackblitz,您可以下载并使用

npm run dev:ssr
进行测试(它有相同的示例)

如图所示,动态参数在服务器端呈现(如在文档响应中返回的那样

<body>


0
投票

我刚刚研究过这个问题并发现,如果您通过应用程序内的导航访问带参数的路由,则它们可以工作,但如果您使用带参数的 url,则带参数的路由将不起作用。 对于像“yourdomain.com/products/:id”这样的网址并点击它,您必须手动或通过后端脚本将路由添加到routes.txt,然后使用它构建应用程序。 这是它的角度文档。它甚至提到了如何只适用于未参数化的路线 https://angular.io/guide/prerendering

© www.soinside.com 2019 - 2024. All rights reserved.