【发布时间】:2017-10-18 12:17:32
【问题描述】:
我正在向使用 HashLocationStrategy 的 Angular 4 应用程序添加服务器端渲染,我想知道 Angular Universal 是否真的支持它。如果确实如此,我很好奇,服务器如何知道正在请求哪个路由?
【问题讨论】:
-
不,服务器实际上不需要知道它。在 Angular 应用程序中,控件应始终使用 Angular。服务器用于在任何给定路径中跟踪的默认策略是 index.html。所以,在 Angular 中设置错误页面是非常必要的,就好像用户访问了一些子路由并且 Angular 没有初始化并且在这种情况下不会找到路由器路径。因此,重新定向回 index.html 页面,角度可以从该页面接管。如果这不是您想要的,请告诉我。
-
@Lambo14 这实际上不是他们想要的。问题是关于通用应用程序的“服务器端渲染”。这意味着“初始”请求实际上是“呈现”到该位置,而不仅仅是简单的重定向。因此,对
/products的响应实际上将呈现的响应返回到该位置,并且“然后”应用程序引导和客户端路由接管。所以这里要问的是#/products是否会发生这种情况,这是一个片段,如果可以,服务器如何识别它。 -
问题真正归结为“服务器是否可以在 URL 中看到片段”。 AFAIK,我不这么认为。因此,我推测“支持”将仅限于默认为“索引”路由,然后让增强的应用程序接管。当然它可以“客户端”,因为片段会被保留。
标签: angular routes universal server-side-rendering