来自重要初学者概念的桌面
您有一个包含 100 个页面的网站。所有 100 个页面都使用相同的 style.css 文件。您想更改每个页面的背景颜色。您在 CSS 文件中进行一次调整,并且该背景颜色调整将反映在所有 100 个页面中。您无需分别编辑每个页面。这是 CSS 背后的核心优势:**将设计从标记中抽象出来。**
现在您想对这 100 个页面进行另一个更改。您希望在每个页面的标题下方包含出版日期。这需要您编辑 HTML 才能实现。如果这 100 个页面基于模板(就像使用 CMS(内容管理系统)时一样),您可以对模板文件进行一次调整,并且日期调整将反映在所有 100 个页面中。这是 CMS 背后的核心优势:**将内容从标记中抽象出来。**
关键在于,一旦网站超过一个页面,就会存在共享资源,并且是时候使用 CMS 了。就像禅意花园 教会我们使用 CSS 对设计自由至关重要并使重新设计更容易一样,最终的自由来自也使用 CMS,在这种情况下我们也不会锁定到任何特定的 HTML。如今,HTML 不用于内容,它用于描述内容。数据库用于内容。
我制作了这张科学图表 来突出所有这些的强大之处。
非常有趣……谢谢!
可以将 HTML 视为斗兽场的支撑,将人们视为内容。CSS 只是油漆。
什么?!CSS 是斗兽场的油漆?!请把这些评论留给自己吧。
CMS = 拥有完整家具的房子
CSS = 油漆 + 墙纸 + 装饰
说得好,Chris
老式的悍马。
过去一个月左右,我一直脑海中都有这个概念,但无法用语言表达出来。你做到了,非常棒;)
感谢您将这个概念用语言表达出来。作为一名网络开发人员,这些基本理念有时很难向人们传达 :)
非常棒,而且大部分是科学图表 :D
所以……
模型 = HTML +(数据库内容)
视图 = CSS
控制器 = JavaScript
我想你有多个抽象级别。我不认为你能进一步分解它吗?
“关键在于,一旦网站超过一个页面,就会存在共享资源,并且是时候使用 CMS 了。”
Chris,我经常阅读你的博客,所以听到你发表如此看似不灵活的声明,我有点惊讶。在这样一个有多种方法可以解决问题的行业中,这种思维方式对我来说太僵化了,没有一个是黑白分明的或对错的。
这些年来,我在这个行业学到的一件美好的事情是,有很多灰色地带,并且把自己逼到那种你谈论的那种角落,至少在我看来,是“不明智的”。
在我看来,一个项目是否需要 CMS 取决于其规模、范围和复杂性,以及客户的需求(和愿望)。对我来说,仅仅说几乎每个网站都需要一个完整的 CMS 并不是那么简单明了。事实是,虽然有些网站确实需要,但有些网站只需要一个“简易 CMS”(或类似的东西),甚至更多网站根本不需要 CMS。我永远不会相信一个静态的三页(甚至十页)宣传册网站需要一个完整的 CMS。为了什么目的?在情况不需要的情况下,简单性不应让位于复杂性。
事实上,我现在看到的是 CMS 在某些网站上的使用激增,而考虑到这些网站的规模、范围和目标,CMS 在这些网站上根本没有意义。
那么,为什么使用它们呢?答案非常简单,与将内容从标记中抽象出来无关。原因是,任何拥有少量知识的黑客都可以完成一个“模板化”的 WordPress、Joomla、Drupal 安装,而无需真正了解网页设计和开发的“技巧”。
新手和 IT 人员尤其喜欢 CMS,因为即使他们也能拼凑出一些东西(弗兰肯斯坦博士,是你吗?),因为它“跳过了”我们手艺中使之成为手艺(以及我们)“特殊”的部分。他们从无到有,而没有(在大多数情况下)他们创造的怪物的“知识”。
无论如何,我并不是说 CMS 不是有用的工具(我一直在使用它们),只是它们应该在专业人士分析项目后认为它是最佳方法时才使用。而不是作为一种默认的操作方式。
我同意,我认为一个拥有多个页面的网站不一定必须使用 CMS。
话虽如此,我确实同意 Chris 的帖子,它用文字表达了一个伟大的概念。
我同意上述观点,但想补充一点:在我看来,我们所熟知的内容管理系统需要一种用于存储与内容相关数据的形式。在大多数情况下(并且有充分的理由),这是一个数据库。理论上,它可以是某种 XML 或其他平面文件。
代码重用不需要这个。但它确实意味着您应该研究服务器端包含,使用某种脚本语言(最常见的是 PHP)或使用传统的 CGI SSI。
对于一个主要为宣传册和静态网站的网站,我认为您不需要 CMS。但使用某种 SSI 是有意义的。这样,您仍然只需要在一个地方更新标题、页脚或某些其他共享内容。
Greg
我绝对必须同意这种观点。我非常努力地练习这项技艺,并且为我手工编写网站感到自豪。有人走过来对我说“哦,我可以构建一个纯 CSS 网站”,而实际上,他们能做的只是更改 Joomla 中的文本颜色。不幸的是,它让我在一个项目中陷入了困境。
而且您绝对不需要 CMS 就能拥有类似模板的结构。只需一点 PHP 知识,您就可以拥有一个包含文件。
就像其他人所说,我也认为它们有其用武之地。从我被迫使用的 CMS 中,WordPress 是迄今为止对我们这些喜欢完全控制文件结构的人来说最灵活的。在任何可能的情况下,都选择自定义编程的 CMS。更干净!
此外,客户实际上不应该拥有太多控制权,而只是更改一些文本。这就是他们一开始雇用你的原因。他们往往会用剪贴画和霓虹色弄糟它。
保持手艺的活力。
我无法说得比这更好。说得很好。
顺便说一句,你的英语很棒。
即使从效率的角度来看,我既同意也反对 OP 的观点。
我同意并非所有网站一开始或“表面上”都需要 CMS,并且应该仔细衡量客户的需求。对你来说看似毫无意义的 CMS 使用和冗余功能,对其他人来说可能很有意义,而你对此一无所知。
作为一名自由职业者,我不得不处理范围蔓延、临时项目大修和半夜的“客户紧急情况”,我可以证明有时 CMS 可以挽救生命。好吧,也许不能挽救生命,但可以让我更容易一些。
CMS 本身大幅增加页面加载时间的时代已经一去不复返了。因此,尽管一个四到五页的“宣传册式”网站不需要 CMS,但我还是偶尔会出于某种自私的目的使用它们。
我也遇到过(强调“s”,它使“情况”一词变为复数)客户为宣传册式网站付费,但仅仅几个月后就要求我添加 CMS 功能的情况。
现在,我只是将每个项目应用于 CMS。这并不是因为我是一个新手黑客,而是因为这几乎总是能使我的生活和/或客户的生活更容易。
有一条规则始终适用:规则总是可以打破的。
当然,使用 CMS 不是一条一成不变的规则,您的具体情况适用。我确实认为这几乎总是一个好主意,并且只是想在它的使用和 CSS 的使用之间做一个类比。
这实际上很有趣,因为这一切都取决于你如何定义“CMS”这个术语。是的,传统上,“CMS”这个术语指的是像 WordPress 和 Drupal 这样的完整第三方安装。但这并不是“CMS”这个词的真正含义。
我认为Chris在他的陈述中非常准确,因为*理论上*他是正确的:HTML不适合存储内容;内容应该与CMS和/或数据库绑定。
想象一个最简单的PHP驱动的网站,它包含页眉和页脚的包含文件,以及根据查询字符串值更改的内容。这样的系统能否称为CMS?当然可以——因为它是一个“管理内容”的“系统”。它只是一个不太复杂的系统,并且没有附带品牌名称。
所以,我认为Chris是对的:每个网站都应该具有一定的内容管理形式,以便尽可能地将内容从标记中抽象出来。
我认为这是对术语的不必要的误用。一个简单的PHP驱动的网站,带有页眉/页脚包含文件和根据查询字符串更改的内容,并不属于内容*管理*。CMS这个术语中隐含的管理是指内容的创建、编辑和删除,而不是显示。
你的例子是一个动态生成的网站,但它当然不需要内容*管理*就可以工作。当然,即使在简单的网站上,拥有这种抽象也是有价值的。但这并不是CMS,我们只是通过错误地使用这些术语,让新用户感到更加困惑。
Tom,你说得对。我想我指的是从编程的角度管理内容,而不仅仅是非程序员将编辑内容。
我想我的意思是,像我描述的这样简单的动态网站是一种将内容从页面中抽象出来的方法,这样你就不会只是提供难以维护的静态页面。
Chris解释得很好。我仍然忍不住要说,CMS也可以只是一些用于常见内容(如页眉/页脚)的服务器端包含文件。对于更复杂的网站,数据库绝对是内容所必需的,但HTML仍然可以轻松地用于内容。想想小型网站以及关于页面、联系方式等。
我的分解
CSS – 样式。
HTML – 用于显示和理解内容/数据的标记。
服务器端内容 – 用于管理内容/数据并允许复杂功能的方法。
JavaScript – 一种更友好的与内容/数据交互的方式。
Chris说得很好。“将设计从标记中抽象出来”对于电子商务解决方案确实至关重要。根据我们对这类项目的丰富经验,当发布新的功能作为软件升级时,与运营项目进行无缝且快速的集成非常有益,因为它可以为在线零售商节省开支。
Chris说得很好,而且切中要害,我同意,超过1或2页时,你应该考虑使用CMS,客户说“我们可以添加另一个页面吗?”是不可避免的,静态网站的简单性就此结束!让他们使用CMS控制自己的内容。
读起来不错.. 非常棒的文章
你可以通过使用不同的php页面作为页眉和页脚并包含它们来绕过CMS。
如果需要更改某些内容,你只需在其中进行编辑,然后所有页面就完成了。
优秀的文章。有时很难向潜在客户解释博客或包含各个文章等的网站实际上是同一件事;它们都是CMS。这篇文章很好地抓住了这一点。
很棒的图表。它确实有点解释了!不,你的观点非常有趣,在我看来很有道理。好文章!
这是一个非常“科学”的图表。
不知何故,悍马很有道理。 :)
if ($pages > 1) {$cms = true}
FALSE 很多人只为一个页面使用CMS,因为
* 可以使用网络界面轻松编辑它
* 他们可以轻松包含扩展和插件。(如联系表单、社交媒体链接、图片库)
哇!好文章
更改为固特异轮胎的CSS是什么?
好文章,很有趣
我是一个自学成才的程序员,在过去的几年里,我变得相当不错。但我仍然有很多东西要学习。
我运营着一个相当大的网站,它可能会从使用CMS中受益。但是,我无法让自己走上这条路。我喜欢编码,我热爱编码的方方面面。我只是知道,如果我开始使用CMS,编码将不再像绘画,而更像是照着数字画画。
对于我的网站上需要频繁编辑的所有常用元素,我只需使用PHP包含文件。
我还使用了一个你们可能都熟悉的迷你CMS系统,叫做Unify。它允许在每个页面上进行内联文本和设计编辑。说实话,我只有在让编辑器的生活更轻松时才会使用它。我很少使用它,我更喜欢深入研究代码!
无论如何,CMS 非常合乎逻辑,使用它肯定有道理。但我是否会使用它?……不会!
所以,如果你处于需要在网站的100个页面上进行更改的位置,你只会手动更改所有100个页面?第二天,又需要进行另一个调整,然后再次遍历这100个页面?或者你只是说这种情况从未发生在你身上。我无法想象工作生活会是什么样子(没有评判,只是说说)。你会发现自己告诉客户“不,抱歉,我们无法进行更改”吗?
好吧,使用我的编码软件,我可以在所有打开的页面上简单地进行文本替换。所以一般来说,如果我必须进行100次编辑,这仅仅是进行文本替换的问题。对我来说可能只需要多花几分钟。我知道这有点过时了,但它有效。
至于客户。我相信如果我为其他人设计,我会使用CMS。但是,我实际上只运营我自己的网站,所以目前我没有任何客户。
我只是觉得CMS 削弱了网页设计的艺术性。我不是专业的程序员,但在过去的三年里我学到了很多东西。如果我一直在使用CMS,我怀疑我学到的东西不会比如何在我的CMS上创建一个新页面多多少。
我首先是一个右脑思考者,这意味着我喜欢以多种方式进行创作(设计)。我尊重程序员和他们的工作。对他们来说,编码就像画一幅美丽的肖像。但是,编码和设计不是一回事。我震惊地发现,一些成功的设计师对CSS知之甚少,甚至一无所知。我为自己能够编写自己的CSS、XHTML和一些可以组合在一起的Actionscript而感到自豪。学习PHP对我来说并不容易。我可以做包含文件,将其与Actionscript链接,仅此而已。出于某种原因,我并没有像学习CSS那样掌握它。话虽如此,对于像我这样的人来说,我需要CMS就像鱼需要水一样。它会削弱我的创造力吗?不会!我也希望能够做到这两点,就像你一样,Nick先生。如果可能的话,我会成为一个糟糕的混蛋(请原谅我的法语)——但事实并非如此。这并非由于缺乏努力,我拥有所有书籍、视频教程,并且在做Kevin Skoglund的练习时无数次地听他的讲解。不过,我将继续努力,放弃者永远不会赢。
好吧,使用我的编码软件,我可以在所有打开的页面上简单地进行文本替换。所以一般来说,如果我必须进行100次编辑,这仅仅是进行文本替换的问题。对我来说可能只需要多花几分钟。我知道这有点过时了,但它有效。
至于客户。我相信如果我为其他人设计,我会使用CMS。但是,我实际上只运营我自己的网站,所以目前我没有任何客户。
我只是觉得CMS 削弱了网页设计的艺术性。我不是专业的程序员,但在过去的三年里我学到了很多东西。如果我一直在使用CMS,我怀疑我学到的东西不会比如何在我的CMS上创建一个新页面多多少。
嘿,伙计,我想我知道你在说什么。1或2年前,我也这么想过。关键是,直到你真正理解CMS,你才会发现CMS绝不会以任何方式限制你做任何事情。我可以在CMS中构建你制作的每个网站,完全相同。
深入研究WordPress(也许还可以通过digWP.com)并体验这个令人惊叹的时刻,你将发现CMS拥有无限的选项!
祝你的旅程顺利,
Rick
在我看来,除非你正在运行博客、论坛或某些涉及用户和海量存储的企业网站,否则CMS绝对是最佳选择。但同时编码一个5页的网站并在所有页面上进行更改并不会让你丧命……通过这种方式,你将学到更多并培养创新思维。
如今,大多数编辑器都具有不同的功能,可以同时编辑许多不同的页面,因此从本质上讲,这不是什么大问题。我喜欢编写HTML和CSS代码
哇。好文章,完全同意。
非常好的类比,CSS是样式,HTML是用于显示和理解内容/数据的标记,如果项目需要,则包含CMS和数据库。LT
我认为本网站的任何人都应该考虑使用http://modxcms.com/,它绝对是初学者到专家都适用最好、最简单的CMS。我已经使用它很多年了,并且永远不会回头!
非常好的文章,包含了css的技巧和演示。这篇文章显然得到了我的赞赏,因为css提供了大量的选择。网页设计师可以调整它们来装饰和设计网页的外观。再次感谢这篇文章。
嘿,Chris,有趣的阅读,我一直期待着这类文章,因为之后总会有非常好的讨论!在构建网站时,很明显,如果不是因为CSS的功能,我们的网站会非常无聊。我喜欢XHTML和CSS的作用,并且在考虑W3C标准的情况下使用它们,将始终为我们的受众提供极佳的体验。感谢分享。
CSS让生活变得轻松多了:) 你那张图很有趣。感谢分享:)
嘿,Chris,
我非常喜欢这篇文章。我也喜欢你的每一个屏幕截图。
谢谢,Chris
我今天早些时候需要开始考虑数据库和自定义CMS,并试图理清我的思路。你刚刚帮助我理清了思路!:)
哈哈,HTML作为CMS,我迫不及待想看到这个:))
就像其他几位评论者一样,我认为服务器端包含(SSI)存在中间地带。共享的HTML(如版权声明、页眉、侧边栏)可以放入文件中,然后包含到网站上的其他页面中。更新页眉文件,所有页面都会更新。这一切都无需CMS的开销。
并且冒着听起来不敬虔的风险,Dreamweaver的模板功能为那些技术上不精通并且对SSI或CMS一无所知的人提供了解决网站范围的HTML更新的良好方案。
也就是说,我非常喜欢WordPress,并且认为任何能让你(或你的客户)生活更轻松的事情都是好事。
我只是想提醒NickB,有些CMS允许你编写干净的HTML代码,同时仍然使用CMS。
Modxcms 就是一个例子。使用它,你会爱上它。
一开始很棒的标题;) 立刻引起了我的兴趣。
CMS和CSS都让我的生活轻松了很多;)
完全同意,偶然发现了你的网站,当时正在寻找css教程,然后发现了这篇文章。做得很棒!