2015-11-05 73 views
1

我有一个rest-api,我将使用一些基本的模板语言来呈现html。我想知道是否有任何好的平台或服务用于预渲染HTML文件并静态地进行服务。为了性能和可伸缩性。从REST-api和模板预渲染静态网站?

我需要预先渲染页面,像每24小时一样,并且还应该可以告诉系统以某种方式重新呈现特定页面。我对大多数开源语言感到满意,节点是最受欢迎的。

+0

所有的HTML页面都是交叉链接的吗?换句话说,是否可以通过以下超链接加载“home”index.html页面并抓取整个网站? –

+0

是的,但我也会提供一个网站地图。 – Himmators

回答

0

在我看来,最直接的方法是使用两层:渲染服务器和缓存服务器。当缓存服务器启动时,它将抓取渲染服务器上的每个URL并将预渲染的HTMLS文件存储到其本地目录中。为了简单起见,您可以镜像“目录结构”并使资源路径相同。换句话说,对于像这样的渲染服务器上的每个网址:

http://render.xyz/path/to/resource 

创建的缓存服务器上的目录结构/path/to,把一个文件resource在里面。

您的最终用户不需要知道这个架构。他们向缓存服务器发出如下请求:

http://cache.xyz/path/to/resource 

缓存服务器向他们提供他们正在查找的结果。

有很多方法可以告诉缓存服务器刷新(重新生成)页面。您可以添加一个“隐藏”目录,我们称之为.cache-command,并用它来处理刷新请求。例如,告诉缓存服务器刷新的资源,你可以使用一个URL是这样的:

http://cache.xyz/.cache-command/refresh/path/to/resource 

当缓存服务器收到请求时,它会刷新资源。

这种方法的优点之一是您的缓存服务器可以完全独立于渲染服务器。它们可以用不同的语言编写,运行在不同的硬件上,或者它们可以是同一个nodejs应用程序的一部分。无论什么最适合你。