概览
主题开发需要在本地运行一个 Halo 实例,以便实时预览模板修改效果。本文介绍两种方式,推荐使用 Docker Compose,无需配置 Java 开发环境。
关键配置:无论使用哪种方式,都需要关闭 Thymeleaf 模板缓存,否则修改模板文件后需要重启服务才能看到变化。
方式一:运行 Halo 源码
参考 在本地运行 Halo 完成源码的克隆和启动,在此基础上需要额外修改 dev Profile 的配置文件,添加以下配置以关闭模板缓存:
spring:
thymeleaf:
cache: falseHalo 运行后,主题目录位于工作目录下的 themes 子目录,将主题项目放在此目录下即可被 Halo 识别:
macOS / Linux:
~/halo2-dev/themes/Windows:在当前用户目录(如
C:\Users\<用户名>)下找到halo2-dev\themes\文件夹
方式二:使用 Docker Compose(推荐)
无需配置 Java 环境,只需安装 Docker,通过 Docker Compose 在本地启动一个专用于主题开发的 Halo 实例。
安装 Docker
macOS:推荐安装 OrbStack(轻量、启动快)或 Docker Desktop
Windows:推荐安装 Docker Desktop
Linux:参考 Docker 官方安装文档
创建目录
mkdir ~/halo-theme-dev && cd ~/halo-theme-dev创建 docker-compose.yaml
version: "3"
services:
halo:
image: registry.fit2cloud.com/halo/halo-pro:2.23
restart: on-failure:3
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090"
command:
- --halo.external-url=http://localhost:8090/
- --spring.thymeleaf.cache=false其中 --spring.thymeleaf.cache=false 是关键参数,关闭模板缓存后,修改主题模板文件只需刷新浏览器即可看到效果,无需重启容器。
启动服务
docker compose up -d放置主题文件
Halo 启动后,主题目录位于挂载的工作目录下的 themes 子目录,即 ~/halo-theme-dev/halo2/themes/。将主题项目放在此目录下即可被 Halo 识别:
# 进入主题目录
cd ~/halo-theme-dev/halo2/themes
# 将主题放在此目录下,例如克隆一个主题项目
git clone https://github.com/your-org/your-theme下一步
环境搭建完成后,就可以开始正式的主题开发了,可以参阅详细的文档:主题开发