为啥将静态页面保存在 Drupal 或 WordPress 等 CMS 的数据库中?

Posted

技术标签:

【中文标题】为啥将静态页面保存在 Drupal 或 WordPress 等 CMS 的数据库中?【英文标题】:Why are static pages kept in a database for CMSes like Drupal or WordPress?为什么将静态页面保存在 Drupal 或 WordPress 等 CMS 的数据库中? 【发布时间】:2014-04-08 02:49:21 【问题描述】:

对于不包含动态数据的静态页面(例如联系人、关于我们、家庭等)已经完成了大量工作,如果设计人员/开发人员可以访问网站,则可以相当容易地更新这些数据。为什么将这些信息保存在必须定期构建数据的数据库中是一种更好的做法?

【问题讨论】:

我是一名开发 Drupal 和 WordPress 的开发人员。坦率地说,他们不会吓到我。我知道他们是怎么打勾的。我想知道为什么没有一个混合系统适合那些可以使用它的人。为那些需要它的人保持动态,但不要引导每个页面。我知道 Drupal 和 WordPress 用户说客户可以自己更新内容,但现实情况是他们通常不这样做。也许答案是创建 CMS? 【参考方案1】:

如果一个人从模板和网站管理员的角度来考虑是一个外行,那么内容管理系统中的数据库格式更有意义,因为所有的人都必须做,例如,为了更改联系方式联系页面,或更改主页上的一些更新,是进入 CMS。它将设置为Form类型的外观,只需要填写和提交。带有 CMS 设置的小型静态网站的初始成本当然会更高。但是,如果您的主页需要定期更新,则可能值得拥有一个 CMS。如果全年变化很小,可以选择聘请设计师/开发人员服务。

我将其视为成本和需求,而不是最佳实践。

【讨论】:

Drupal 和 WordPress 是基于模板的。即使您不是专业人士,它也会引导您建立网站或 CMS。代码将在后面。您的网站可能不是动态的,但他们的系统是动态的。 这给我带来了一个后续问题。随着 Drupal 引导整个系统以确定它几乎每个页面加载(除非缓存),为什么没有考虑运行静态和动态的混合系统,或者提供一种返回已优化的预编译页面的方式,所以它不是在请求时动态构建页面吗? 我没有使用过 Drupal,但是,在使用过 WordPress 之后,我意识到它需要一个学习曲线。对我自己来说,我发现它太局限了。它的目的是作为构建网站的工具。我看到 Drupal 专注于构建定制的 CMS。我假设这个问题最好针对 Drupal。当我看到“定制”这个词时,我假设它仍然有其局限性。对于 Drupal 来说,定制可能意味着,他们正在尽最大努力使其用户友好。但是,使用代码更强大。为此,您需要具备开发人员的知识。 @OddenCreative。抱歉,我刚刚看到您对“我猜答案是创建 CMS?”的评论。我会说“是”。 WP 和 Drupal 中有一个内置的 CMS,它需要对其 CMS 系统的附加功能。作为一个开源者,我希望有人承担这项任务。 @OddenCreative:已经考虑过生成静态文件的 CMS。 Jekyll 非常有名,并且确实做到了这一点。但是通常,他们很少将自己标记为 CMS,它会引入偏见(大多数人希望 CMS 是完全动态的,而不是生成静态文件)在 Drupal 世界中也考虑了静态生成的方法。 Boost 模块 (drupal.org/project/boost) 并不是新的,它就是这样做的。最近,Zariz 项目 (drupal.org/project/zariz) 也在尝试从 Drupal 生成静态站点。【参考方案2】:

因为将内容放入数据库并为每个请求动态生成页面解决了很多其他问题。缓存失效是一个难题。每个页面都由来自多个来源的不同内容(在 Drupal 中:块、用户、节点、分类术语等)构建的静态网站就像一个巨大的缓存。

但是,如果您不需要 CMS 的灵活性和功能(例如让几乎非技术用户编辑内容),那么请不要使用 CMS。

【讨论】:

【参考方案3】:

“对于不包含动态数据的静态页面,例如联系人、关于我们、家庭等,如果设计人员/开发人员可以访问网站,则可以很容易地更新这些静态页面。为什么将这些信息保存在必须定期构建数据的数据库中是一种更好的做法吗?”

这里可能需要考虑 3-4 个关键点。

首先,人们为什么使用 WordPress?在许多情况下,这是因为他们自己不是 Web 开发人员,并且他们不想在每次董事会(比如说)发生变化时都雇用一名。我在这个类别中有几个客户。通过将内容放入数据库并在模板中呈现,非技术用户也可以管理自己的页面。

其次,考虑像您这样的人创建多个静态页面并简单地使用 WordPress 为博客提供动力是多么容易。不乏这样做的初创公司和小企业(尤其是在科技领域)。使用 Wappaylzer 之类的工具来查看人们在使用什么。

第三,将静态信息保存在数据库中并不是最佳做法。这就是页面缓存存在的原因(以及静态资产和操作码缓存......没有人建议将不必要的重新计算作为性能最佳实践)

第四,考虑删除用户编辑页面的能力的影响。或者要求他们了解 html。如果我们也开始处理修订管理,他们可能还需要学习 Git。我讨厌必须帮助客户解决他们真正应该能够自己解决的问题。如果他们能自己处理简单的事情,我会更开心。他们往往对自己的网站更满意,而我往往会获得更多有趣的项目……一切都很好。

总之,对于某些人来说,这不是最佳做法。这就是为什么有些人不这样做的原因。返回静态资产的数据库也不是最佳实践,这就是为什么有合理意识的人不这样做的原因。但至少,让人们更好地控制他们的网站是一个很好的做法。这是有代价的,而且并不适合所有人。但这对很多人来说肯定是正确的……也许不仅仅是“正确”。我认为您甚至可以说它具有强大的能力,并且总体上是 WordPress 最好的事情之一

【讨论】:

以上是关于为啥将静态页面保存在 Drupal 或 WordPress 等 CMS 的数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

Drupal,在自定义 php 页面上嵌入视图块/结果

drupal 页面排版。功能方面己实现了。想模仿某个网站的样式。怎么做。

在Drupal 7中的页面之间传递变量

如何获取 Drupal 页面的完整 URL?

Drupal 添加静态链接到视图

drupal页面上的“上下文”