【发布时间】:2017-06-07 19:16:07
【问题描述】:
什么:我正在使用 Angular 构建一个网站,我想将它部署在纯静态服务器(例如 Amazon S3)上。我需要在部署之前为网站预渲染所有 HTML 页面,但我不知道如何继续。
如何:我目前的想法是让一些爬虫读取像sitemap.xml 这样的文件来检索所有站点 URL 的列表,然后将这些 URL 的请求发送到 Node.js 所在的服务器已安装并且我的 Angular(通用)应用程序的一个实例正在运行。
问题:这听起来像是正确的做法吗?我错过了重要的一步吗?是否有任何库或 npm 包可以帮助完成这项任务?
令人惊讶的是,我找不到任何关于 Angular 预渲染的文档(只有重新渲染)。我还查看了静态站点生成器以获取灵感,但它们都使用一堆静态文件作为起点(不是 URL 列表)。另外,我不想使用像 prerender.io 这样的第三方服务。
【问题讨论】:
-
您好,君特。就像我写的那样,在服务器上运行的应用程序确实是一个通用应用程序。但我的问题实际上是关于如何生成静态 HTML 文件,而不是关于如何在服务器端运行 Angular 应用程序。
-
我认为有一些方法可以持久化生成的输出。我还没有仔细研究环球。如果这不这样做,那么我想这将是困难的。为什么您实际上认为您需要预渲染所有内容。您可以将 Angular2 应用程序的构建输出部署到任何服务器就好了。
-
你是对的。但我这样做是出于好奇,也因为我喜欢在纯静态服务器上托管的好处(更好的性能,更简单的配置......)。这都是关于JAMstack ;-)。由于我正在构建的网站将有 600-700 个页面,因此预渲染看起来是一个不错的选择。 universal.angular.io/overview 的文档确实提到了预渲染,但它只说“使用构建工具生成静态 HTML”并且没有详细说明。
-
@AngularFrance,你找到解决方案了吗?
标签: angular