为什么大多数CMS都不会将静态.html文件写入磁盘?

时间:2010-07-17 15:25:53

标签: architecture web content-management-system webserver

对于不需要像注释这样的动态功能的基本CMS,为什么不将静态.html文件写入磁盘?然后可以使用像nginx这样的高性能静态文件Web服务器来提供文件。从理论上讲,这可以提供最高性能的网站。

编辑:在我看来,“基本CMS”是公司可以用于公司网站的东西。内容需要改变我的营销人员,但通常没有像评论这样的动态内容。

7 个答案:

答案 0 :(得分:1)

一个原因是即使是基本网站也广泛使用“动态”内容。 考虑最近文章的侧边栏 - 如果网站是静态HTML页面,则每次发布新帖子时都可能需要重写网站的每个页面。

但是,如果高流量意味着响应每个请求而提供动态内容会成为性能问题,那么许多CMS都可以缓存其内容,从而有效地实现两全其美。

答案 1 :(得分:0)

如果 内容没有改变,那就没问题。一旦发生变化,您需要重新生成html。即使您没有评论,也可能是因为您的内容具有潜力而需要更改。

CMS会有一个缓存,但它仍然需要检查自上次生成html以来是否有任何内容发生了变化。缓存也占用磁盘空间 - 虽然不是一个大问题,但这是一个考虑因素。

因此,根据内容更改的频率和内容的大小,预生成html可能没有意义。

答案 2 :(得分:0)

当您说静态内容时,大多数CMS会假设其内容需要修复,但需要可编辑。我相信这就是他们从未写入html并保存到数据库的原因。

答案 3 :(得分:0)

大多数CMS可能需要一些动态功能。

但是有一些,特别是博客引擎,按照你描述的方式工作。这是一组生成博客的程序,包括原子供稿。

以utterson为例:
http://github.com/stef/utterson

答案 4 :(得分:0)

虽然这不是你问题的直接答案,但我还记得我最近读到的一些博文,你可能对此感兴趣:baking vs. cooking

它描述了将WordPress博客转换为“烘焙”解决方案。

答案 5 :(得分:0)

一个原因是说,SQL,解决方案允许您将布局和模板问题与数据本身分开。因此,您的内容与结构更改无关,这使得事情更易于管理。使用基于文件的方法,对结构的任何更改都需要您删除并重写所有现有内容。

答案 6 :(得分:0)

因为大多数CMS都需要某些描述的动态功能(或至少将其作为功能,因此根据需要设计其架构)。

此外,大多数CMS都不是“基本的” - 它们是高度复杂的“万事通”网络应用程序,它们通常远远超出您的需求/需求 - 大多数都是动态的。

许多CMS会像你所描述的那样进行缓存,而且大多数CMS都没有某种模块/插件/等。这样做。 Drupal例如有Boost:http://drupal.org/project/boost