需求背景
我正在用 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 存储并加速
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式