Berke Özyaşar
博客

不用数据库的管理后台:HATKO Solar 的页面内编辑

HATKO Solar 网站的内容保存在 JSON 文件中,团队直接点击页面上的文字进行编辑。这种做法什么时候合适,什么时候传统后台更好?

·
HATKO Solar 网站首页

说到企业网站的管理后台,人们通常会想到数据库、登录界面和长长的表单。为客户 HATKO Solar,我选择了另一条路:网站内容不存放在数据库中,而是保存在 JSON 文件里;团队在网站预览中点击相应文字,就能修改内容。我是 Berke Özyaşar,在这篇文章中,我会介绍 HATKO Solar 后台的工作方式,以及这种做法在哪些情况下是正确的选择。

项目简介

HATKO Solar 是 HATKO A.Ş. 旗下的太阳能品牌,在其位于埃拉泽(Elazığ)的工厂生产光伏接线盒(PV junction box)和连接器。网站提供土耳其语、英语、中文和德语版本,包含产品页面、证书、PDF 文档中心、新闻、生产与技术页面以及询价表单。大部分内容变动并不频繁,但会定期更新:一张新证书、一份更新的宣传册、一条新闻。

在页面上直接编辑

在传统后台中,编辑人员不得不猜测某个表单字段会出现在网站的哪个位置。而在 HATKO 后台中,打开的是网站预览;点击想要修改的文字或元素,就能在原处直接编辑。颜色、字体和首页各板块也可以在后台调整。产品、新闻、证书、文档、轮播图和合作客户属于重复性内容,因此以独立列表的形式管理。图片上传、表单留言和修改密码也是后台的功能板块。

为什么把内容放在 JSON 文件里

服务端由 PHP 读取内容文件并生成页面;前端运行的是原生 JavaScript。这一选择带来的实际效果如下:

  • 网站在共享主机上无需额外安装即可运行;没有需要安装、管理或升级版本的独立数据库服务器。
  • 备份就像复制文件一样简单。
  • 内容结构清晰可读;新增字段无需修改数据库结构。
  • 对于产品目录和证书列表这类记录数量有限的内容,基于文件的存储已经足够快。

发布与回滚

在后台所做的修改,点击“发布”后才会对所有访客生效;如果出了问题,可以回滚到上一次发布的状态。编辑和发布分成两个步骤,可以避免写到一半的文字被访客看到。而能够回滚,则让团队可以放心地在后台进行修改。

四种语言,一个后台

土耳其语、英语、中文和德语文本通过后台的翻译板块管理,每个页面都配有 hreflang 标签。多语言网站常见的问题是:更新了一种语言,却忘了其他语言。在同一个板块中管理翻译,更容易看出哪段文字在哪种语言中还缺失。

证书门槛:借内容收集询盘

光伏组件制造商在评估供应商时会查看证书。HATKO 网站上的证书在预览中显示为模糊状态;要查看完整内容,访客需要填写公司、姓名和邮箱。这样,想查看证书的访客就转化为销售团队可以跟进的联系记录。哪些内容放在这种表单之后,应该是深思熟虑的决定;把每份文件都锁起来,只会让访客感到厌烦。

HATKO Asistan:答不上来的问题会进入后台

网站上有一个名为 HATKO Asistan 的聊天窗口,借助基于关键词的知识库回答有关产品、证书和询价的问题。助手的回答来自团队准备的内容。它答不上来的问题会作为建议列在后台;这让团队看到访客真正在问什么,也便于用这些问题扩充知识库。

安全基础

没有数据库,并不意味着安全不那么重要。HATKO 后台具备会话管理、CSRF token 防护和登录尝试次数限制。在这种架构中,还需要注意把内容文件存放在无法通过网络直接访问的位置,并检查上传文件的类型。

这种做法的局限

基于文件的后台也有代价,需要事先了解。如果多人同时编辑同一内容,最后写入文件的人可能会覆盖其他人的修改;因此,更适合让写入操作排队进行,并在小团队中使用。当内容达到数千条记录时,搜索、筛选和分页等操作在数据库中要容易得多。报表也是如此:在数据库中一条查询就能得到的汇总,用文件则需要另外编写代码。而对于像 HATKO 这样内容结构化、变动不频繁的企业网站,这些局限并不构成决定性因素。

与传统后台的对比

为客户 Hekimoğlu Lojistik,我则搭建了另一种架构:基于 PHP 和 MySQL、带统计界面的传统管理后台。新闻用 TinyMCE 编辑器撰写,带有 SEO 字段、置顶功能,以及已发布、草稿和归档三种状态。文件的浏览和下载次数,以及来自询价和联系表单的留言,都保存在数据库中。对于新闻存档会随时间增长、并有计数器这类持续写入数据的网站,数据库才是正确的选择。

何时选哪种

  • 无数据库、页面内编辑:内容有限且结构化、修改不频繁、编辑人员不懂技术,并且希望网站在简单的主机上运行时。
  • 数据库加传统后台:有新闻存档这类持续增长的内容,需要分页、搜索和筛选,有计数器和表单记录这类持续写入的数据,或者有多人同时录入内容时。

两种做法都不依赖现成的 CMS,而是为网站量身编写;区别在于数据存放在哪里,以及团队如何处理内容。哪种更适合您公司的网站,我们可以在企业网站开发项目开始时一起确定。

更多文章

一起让您的应用上线吧。

用几句话说说您想做什么,我会当天回复。

↑ ↓ 浏览,Enter 打开,Esc 关闭