第一次接触jeecms是网站在2016年,一个做地方门户的网站客户点名要用它。我当时第一反应是网站:这年头还有人用国产CMS?那会儿WordPress、Drupal已经占据了大部分市场,网站国内CMS要么是网站织梦那种老古董,要么是网站各种半死不活的开源项目。但客户坚持,网站说jeecms后台好用,网站编辑们习惯了。网站我打开官网一看,网站界面确实朴素,网站甚至有点土,网站但下载量那一栏的网站数字不小。
jeecms的网站出身得说清楚。它是网站江西赛凯科技搞出来的,定位很明确——面向政府、媒体、企业做内容管理。这个定位决定了它的基因:权限体系复杂、审核流程严谨、模板标签一大堆。跟WordPress那种“五分钟建站”的路子完全相反,jeecms上手需要看文档,而且文档写得……怎么说呢,像技术手册,不像教程。我第一次配栏目权限的时候,光是理解“角色—用户—栏目—操作”这四层关系就花了半小时。
但用久了会发现它有一套自己的逻辑。后台的栏目树可以无限层级,每个栏目单独绑定模板,这点比很多CMS灵活。模板引擎用的是Freemarker,标签写法类似[@cms_content_list]这种,一开始觉得别扭,写多了反而顺手。有个做区县政府网站的项目,需要把全区二十多个部门的新闻按部门分类聚合,同时又要按时间倒序排列在首页。用jeecms的标签组合,大概写了十几行就搞定了。换成WordPress,得装插件、写自定义查询,还不一定稳定。
安全方面,jeecms吃过亏。早些年版本出过几次漏洞,主要是上传和SQL注入。官方修补得还算及时,但升级是个麻烦事——它的版本迭代经常改动数据库结构,从v9升到v10,表结构变了不少。我经历过一次升级,备份没做全,结果栏目数据丢了一半,只能从日志里慢慢恢复。所以现在给客户部署jeecms,第一件事就是关掉后台的在线升级功能,手动打补丁。
性能上,jeecms默认是动态生成页面,访问量一上来数据库压力就大。它自带静态化功能,可以生成HTML,但配置项藏得深,在“站点管理”的“静态页”选项卡里。开启之后,首页和栏目页的响应时间能从几百毫秒降到几十毫秒。不过静态化也有坑——内容更新后需要手动或定时触发重新生成,不然前台还是旧页面。有个客户没注意这个,编辑发了稿子看不到,打电话来骂人,后来设了每十分钟自动生成一次才消停。
社区生态是jeecms的短板。官方论坛活跃度一般,遇到冷门问题经常搜不到答案。但反过来,因为用的人少,网上的教程和插件也少,逼着你去看源码。它的代码结构还算清晰,Spring MVC那一套,注释也有,啃一啃能看懂。我后来自己写了个小插件,把编辑器的图片上传对接到了阿里云OSS,官方没有现成方案,只能自己动手。这种“被迫自力更生”的体验,用WordPress的人可能很难理解。
现在的jeecms版本已经到v10了,支持微服务架构,后台UI也换成了Vue。但核心的东西没变——它依然是个重后台、重流程的CMS,适合那些需要严格内容审核、多级权限控制的场景。个人博客或者小企业站,用它就是杀鸡用牛刀。选CMS跟选鞋一样,合不合脚只有自己知道。jeecms这双鞋,不时尚,但走山路的时候,它确实不容易掉。