Angular 通用部署

Angular Universal Deployment

如果有人能澄清托管服务器是否需要 node.js 支持才能使 Angular Universal 正常工作,我将不胜感激。我是否需要将 dist 中的浏览器和服务器文件夹上传到主机。如果是,是否有任何关于托管提供此类支持的建议?其次,除了 node.js 之外,还有其他方法可以使服务器端渲染正常工作吗?

在回答这个问题之前,先通俗地了解一下SSR和CSR的一些基础知识。

CSR 或客户端呈现

当网络应用程序在浏览器(客户端)上呈现时。这里浏览器首先下载所有 html css 和 js。比浏览器上的 JS(your-some-awesome-framework) 运行s 决定最终网页的外观和行为。

SSR 服务器端渲染

当 Web 应用程序在服务器(服务器端)上呈现时。这里的 JS(你的一些很棒的框架)已经在服务器上完成了大部分工作。因此,在您的浏览器上,您可以在没有任何 JS 启动、绑定和呈现延迟的情况下获取网页。


现在有两种渲染方式-

动态 SSR静态预渲染 SSR

动态SSR 当实时服务器动态生成和序列化应用程序时。当用户点击 URL 网站时,服务器首先生成网页并提供内容。

静态预渲染 SSR 当已经有预呈现的静态文件并且浏览器简单地提供这些文件时。


关于 angular 框架的问题现在有了答案。

  1. 托管服务器是否需要 node.js 支持才能使 Angular Universal 正常工作?

对于静态预渲染 SSR - NO,没有这样的需要。

对于动态 SSR - 技术上是,见下文

  1. 我是否需要将 dist 中的浏览器和服务器文件夹上传到主机?

对于静态预渲染 SSR - 可以托管文件的任何服务器上的浏览器文件夹

对于动态 SSR - nodeJs 支持服务器上的服务器文件夹。

  1. 除了 node.js 之外,还有其他方法可以使服务器端渲染正常工作吗?

有一些方法可以运行通过ASP.NET结点 核心和其他选项也是如此。但是对于动态 ssr nodeJs 会来的方式。