Golang CMS 通用的公司产品、服务介绍类网站框架设计

更新日期: 2022-04-20 阅读次数: 382 字数: 646 分类: 网站建设

需求背景

我正在用 golang + react ant design pro 开发一套公司内部使用的物联网产品解决方案的介绍网站,同时支持电脑端和手机端。

但是突然来了一个客户的紧急需求,就是能够手机扫描二维码,直接查看产品介绍。 最初想做微信小程序,但是由于要兼容海外市场,最终决定采用 H5 页面的方式来实现,支持中英双语。

于是纠结来了。如果把现在正在开发的那套代码复制过来,很多地方都是需要调整的,例如:

  • 公司 logo
  • 企业名称
  • 备案号

等。而这些模板修改,放到代码中,非常不方便维护,以后再有第三套,第四套同样需要这些修改。

于是,我想是否能够实现一套像 php wordpress 那样的通用网站架构。

这样,多套主题模板就能复用了,而且只要数据库不共享,也不会泄露不通过站点之间的业务数据。

可以抽象出来的共性配置

  • 公司 logo
  • 企业名称
  • 备案号
  • 联系电话。可以多个
  • 企业简介
  • banners。可以添加描述,及跳转链接
  • 多语言设置

不同公司、业务模板的实现方案

参考 wordpress 的实现方案,在项目根目录下设置一个主题目录 themes,里面包含一堆主题模板。

在单个主题目录内,再实现具体的首页,详情页模板。

但也需要一些规范:

  • 模板可以在后台管理页面选择配置; 加载模板时,从数据库读取配置
  • 模板文件遵守命名规范。例如:index.html, detail.html
  • 每个模板使用一个 css 文件
  • js 文件也使用一个,即便用到多个,后台构建时,打包成一个,并做混淆
  • 支持自定义 css 的配置,存数据库中,也是参考 wp 的做法。使用场景,例如,顶部 logo 的尺寸不同,需要使用不同的宽高限制。

采用的技术方案

  • 后台 golang。实在接受不了 PHP 的性能,及多版本部署的麻烦
  • 管理后台,做前后端分离,使用 React Ant Design Pro V5
  • 模板直接用 golang template。目前看够用
  • CSS 使用 Tailwind CSS 构建
  • 图片传七牛 CDN 存储并加速

tags: golang cms

爱评论不评论