Do Note

儒道佛魔修心地

静态网站系统的构建与思考


静态网站,可以认为是网站构建的根本。 随着动态网站的出现,众多CMS程序已经十分全面的占据各大网站系统的后台。 基于Web标准,使得前端与后端分离化,数据与文件分开管理。由于这些好处,PHP+MySQL几乎横行了大部分的站点构架。然而,对于个人用户,或者小型企业而言,整站动态化是否真的必要?我认为,这是值得商榷的。

一般的静态网页,因为少了数据库的查询,对于所在服务器的要求大大降低,页面加载速度也就大幅度提升,用户体验度自然也就高,十分适合展示型或者更新频率较慢的网站。这两点要求,恰恰符合了个人博主与小型企业用户的需求。但问题在于,如果要构筑静态网站,那么会迫使非专业用户学会使用Dreamweaver等专业的建站程序,这无疑阻断了用户选择静态建站的道路。除此之外,诸如用户评论、RSS订阅、社区分享、访客统计等功能,在基本的静态站点中也是无法实现的。这一系列的问题,最终导致静态站点与整个互联网脱节,成为孤立的一个主体。

解决方法其实很简单,也是我目前尝试应用在企业站点中的手法,就是基于动态网站构架,静态化页面!原理很简单,因为在一个网站中,大部分东西都不需要实时更新的,比如网站名称,文章内容,页面介绍等。那么极端一些的方法就是,让所有的东西都不需要动态化,先整站静态化。当有内容更新时(比如新文章加入,新评论加入等操作),再进行一次静态化操作(或者只针对需要更新的页面做新的静态化处理)。这样一来,访客在打开页面时,SQL次数基本为0,但是使用者又可以在后台方便的实时更新,一举而两得。这个方法我定义为:由动至静。

那么反过来,由静至动是否可行呢?答案也是可以的,这必须归功于当下流行的静态网站生成器。原理就是在本地建立了一个网站模板,在本地写好日志后,通过批量化处理自动生成并更新所有的页面文件,最后想这些文件统一上传至服务器就完成了。与传统的静态网站构建方式相比,有两点不同:1.降低了更新文章的操作门槛,用记事本就能完成文章的添加,修改,删除。2.可以充分利用Web 2.0应用,将评论、订阅、分享、统计等功能托管在第三方服务。最终完成的站点效果,与“由动至静”法相差无几。

虽说相差无几,但毕竟还是略有些差异的:1.部分需要查询数据库的功能,比如搜索,无法在“由静至动”中实现。因为你无法预知用户会查询哪些关键词,故而无法实现准备好这些关键词对应的页面。2.“由静至动”法虽然降低了编辑的门槛,但大部分人更容易接受“由动至静”法的“所见即所得”。3.“由静至动”法的动态数据(如:评论)因为是托管在第三方服务器中,因而这部分内容可能会受制于第三方服务(能否数据导出与迁移等问题)。4.虽然两者在访客状态下都是静态网页形式,但“由静至动”法对于服务器要求远低于“由动至静”法,个人用户在考虑站点维护成本时应当有所考量。5.除此以外,在使用环境支持等方面,目前“由静至动”法只有极小众人群的用户,对于企业建站而言,依旧推荐使用主流方案,这对于数据的定期备份等均有保障。

总结一下,静态网站系统虽然目前并不适用于企业建站,但对于极小众的GEEK而言比较有趣味,可以探索与开发更好的用户界面。


One response to “静态网站系统的构建与思考”

  1. […] 这一篇文章可以说是上一篇日志:静态网站系统的构建与思考的具体实现。 在经历了2009年至今的若干次网站迁徙和改版之后,三年前就对自己持有的域名作出了重新规划,原则就是只记录精品信息,一些生活中的琐碎由第三方SNS来消化(有响应群体更容易产生互动)。但是再琐碎也是生活的一部分,第三方平台在一次又一次的变化中,曾经的记录也随之流失。几经思考后,既不想丢失数据,又不想产生开销,所以寻求了一套免费建站方案,具体实施如下: 1. 域名 顶级域名基本就不要想了,如果不介意经常重新注册,可以考虑TK那一类的。最后我选择的是eu.org二级域名,这个后缀的域目前已经被Q,所以需要使用https访问模式,果断上cloudflare。 2. 空间 免费的虚拟主机一搜一大片儿,根据以往经验,速度和性能简直惨不忍睹,而且动不动就被Q被封。所以要找就要找大企业下的免费方案,比如众多的PaaS,其中Github作为程序猿的地盘还是挺厚道的,就暂时用它好了。 3. 构架程序 空间已经是静态的了,那么程序就不可能是WP或者其他的PHP/ASP,找用户数量多的例如HEXO算是稳妥的选择。为了拉近和动态网站的差距,除去使用NEXT主题并采用第三方评论系统“多说”,又做了如下设置: a) 修正feed中的相对路径 因为主要内容还是以图片居多,所以挂了一个专门放置图片的文件下在根目录下,在编辑日志时可以用相对路径插入图片(使用相对路径的好处是今后若是更换域名,站点文件不需做变动)。那么问题随之而来,在使用hexo-generator-feed产生feed后,其中的图片仍旧以相对路径出现,给之后使用IFTTT同步至blogger和facebook带来了不便,所以使用replace插件来修复feed。 先安装replace npm install replace 新建一个rss.js文件 […]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.