angular - 静态服务器端渲染或动态服务器端渲染

标签 angular typescript server-side-rendering angular-universal

为了使网站 SEO 友好,我们必须在 Angular 中实现应用程序的服务器端渲染

我读过很多关于服务器端渲染的文章。在阅读过程中,我了解到两种类型的渲染。

<强>1。静态服务器端渲染 2.动态服务端渲染

但这是什么意思呢?我没有从我读过的文章中得到这一点。仍然困惑为我的应用程序选择哪一个。

所以我只想知道对于哪种类型的应用程序/网站我们必须使用静态以及对于哪种类型的应用程序/网站我们必须使用动态服务器端渲染?

最佳答案

正如你所说,有两种方法可以在服务器上渲染 Angular 应用程序。这是区别,并附有示例来说明它们的用法。

静态服务器端渲染

本质上,这是指为您的应用程序生成预渲染页面的过程,然后您可以使用 Amazon S3 等服务静态托管该页面。 。这些文件是静态的这一事实也意味着它们很容易通过 CDN 提供服务。您只需在本地计算机或 CI 环境中构建文件,然后推送到主机所在的任何位置。这是关于 Pre-rendering Angular Applications 的简短指南.

最终,您在 Angular 应用中定义的每个路由都会生成一个 HTML 文件,其中包括加载时显示的任何动态生成的内容。这显然对搜索引擎和爬虫来说效果很好。当浏览器加载您的某个页面时,它会立即获得预渲染响应,然后 Angular 就会启动您的 Controller 、服务等中定义的所有动态行为。

示例:

您已经建立了一个营销网站来展示一些产品。它有固定数量的路线(主页、关于、联系)。构建应用程序后,您将获得 3 个静态 HTML 文件、一些 Javascript 以及涉及的任何其他 Assets 。

动态服务器端渲染

您可能已经猜到,当您有动态路由(例如 /products/:productId)时,这特别有用。使用 Angular Universal,我们可以在 Node 中运行 Express.js 服务器,该服务器将在客户端请求时动态渲染每个页面。这需要更多时间,但非常值得!

示例:

您已经建立了一家商店,每次添加新产品时,您都希望该产品可供 G​​oogle 和“赞”索引。您还希望它能够在 Facebook 等 Open Graph 预览渲染器中良好显示。

关于angular - 静态服务器端渲染或动态服务器端渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54511078/

相关文章:

angular - 使用 Angular 浏览静态 Html 文件

node.js - ejs模板的客户端和服务器端渲染

Angular SSR 窗口调整大小事件

javascript - 如何将 112889 (mmddyy) 转换为 11/28/89 或 11/28/1989

css - Webpack 加载 primeng.min.css 时出错

javascript - 每个 React 类方法的 "Missing return type on function"

typescript - 什么是 typescript 类型?

typescript - 如何创建仅接受具有特定嵌套类型的类型实例的泛型函数?

javascript - 使用 Material UI 1 和 Nodejs/React 进行服务器端渲染

angular - 更改 Angular mat-tab 的顺序