预渲染如何工作?

asd*_*asd 8 angular

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

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

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

以上正确吗?

另外,我有两个问题:

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

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

Ser*_*gey 4

  1. 如果我们谈论在您的服务器上使用 Anguar,那么只有没有人可以使用您未提供的其他内容。也就是说,如果你使用 Nginx,其他人也会使用它。

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

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

预渲染的 shell 仅用于在加载实际应用程序时显示 UI 的一小部分。然后它就会被真正的应用程序所取代。路线和守卫等开始工作,Angular 应用程序负责处理其他事情。

另外,我确信 99% 的情况是,从服务器获取的任何需要向未经授权的用户隐藏的信息都必须通过 Angular 的防护和后端的身份验证检查。

  1. 据我记得预渲染的“shell”没有为特定路由定义,并且不需要将其指向任何路由。因为,它只显示一个加载程序(或您想要指示的任何其他内容),然后加载应用程序,它的工作方式就像没有外壳一样。