预渲染如何工作?

时间:2019-05-05 21:49:25

标签: angular

以下是我目前对渲染的理解。如果我错了,请纠正我。

想象一下,我在登录页面后面设置了一个Angular 7应用程序仪表板。我将使用有角度的通用工具(或其他工具)来预渲染登录页面和仪表板页面(只是带有加载程序的外壳),它们将与我的应用程序的其余部分一起以login/index.htmldashboard/index.html的形式出现。

如果用户转到/login/dashboard页面,Nginx将检查cookie。如果cookie表示用户已登录,则Nginx将提供dashboard/index.html,否则,Nginx将提供login/index.html

以上正确吗?

另外,我有两个问题:

  1. 如果有人不使用Nginx而仅使用S3怎么办?在没有Cookie访问的情况下,他们将如何处理上述情况?

  2. 如果有人去了未知路由器怎么办?说/not-found-route?如何使用预渲染显示404页面?

1 个答案:

答案 0 :(得分:4)

  1. 如果我们正在谈论在服务器上使用Anguar,则只有没有人可以使用您未提供的其他功能。即如果您使用Nginx,其他所有人都将使用它。

如果这是关于在另一台服务器上进行部署,则它应该有权访问cookie。 (但是,我不确定是否正确,因为我可以自己制作任何cookie并提供给您。您应该在后端将此cookie进行检查。)

  1. 我想在加载之前无法知道您的应用程序的哪些路由是已知的,而是以硬代码方式定义它们(这对于使用大量路由的应用程序来说是很痛苦的)。

预渲染的外壳程序仅用于在加载实际应用程序时显示UI的一小部分。然后将其替换为真实的应用程序。路线和警卫等开始工作,Angular应用程序会处理其他任何事情。

此外,我可以肯定地说,有99%的人需要从服务器中获取任何需要向未经授权的用户隐藏的信息,这些信息都必须通过Angular的保护措施和Backend的身份验证检查。

  1. 据我所知,尚未为特定路线定义预渲染的“外壳”,也无需将其指向任何路线。因为,它只显示了一个加载器(或您要指示的其他任何内容),然后加载了应用,它的工作就像没有外壳一样。