我在使用角度通用的服务器端渲染动态路线时遇到问题。
例如:
{ 路径:'room/:slug', 组件:RoomDetailsComponent }
不会在服务器端渲染。
{ 路径:'房间/第一个房间',组件:RoomDetailsComponent }
将在服务器端渲染。
我找到了一些解决方案,例如从后端服务获取路由。我认为应该有更好、更少黑客的方法来做到这一点
也许您缺少 RouterModule 声明中的属性,因为它应该按预期工作。
这里我创建了一个 stackblitz,您可以下载并使用
npm run dev:ssr
进行测试(它有相同的示例)
如图所示,动态参数在服务器端呈现(如在文档响应中返回的那样
<body>
)
我刚刚研究过这个问题并发现,如果您通过应用程序内的导航访问带参数的路由,则它们可以工作,但如果您使用带参数的 url,则带参数的路由将不起作用。 对于像“yourdomain.com/products/:id”这样的网址并点击它,您必须手动或通过后端脚本将路由添加到routes.txt,然后使用它构建应用程序。 这是它的角度文档。它甚至提到了如何只适用于未参数化的路线 https://angular.io/guide/prerendering