系统结构

Halo 博客系统分为以下四个部分:

项目名称简介
halo提供整个系统的服务,采用 Spring Boot 开发
halo-admin负责后台管理的渲染,采用 Vue 开发,已集成在 Halo 运行包内,无需独立部署。
halo-comment评论插件,采用 Vue 开发,在主题中运行方式引入构建好的 Javascript 文件即可
halo-theme-*主题项目集,采用 Freemarker 模板引擎编写,需要包含一些特殊的配置才能够被 halo 所使用

工作目录

默认配置下,Halo 是工作在 ~/.halo 目录下的。在开发环境下,默认的工作目录~/halo-dev,在测试环境下,默认的工作目录是 ~/halo-test

目录结构

  1. ├── application.yaml // 用户自定义配置文件,默认是不存在的
  2. ├── db // H2 Database 数据库文件,可能还会有 halo.trace.db
  3. ├── halo.mv.db
  4. ├── logs // 日志目录
  5. ├── spring.log
  6. ├── templates
  7. └── themes // Halo 主题目录
  8. ├── anatole
  9. └── upload // 通过本地上传的文件所在目录

自定义配置

为什么要提前讲自定义配置呢?是因为在这里让大家了解到 Halo配置方式,以及配置优先级,不至于未来运行项目的时候不知道如何优雅地修改配置。

Halo 配置目录优先级如下(从上到下优先级越来越小,上层的配置将会覆盖下层):

  • Halo 自定义配置
    • file:~/.halo/
    • file:~/.halo-dev/
  • Spring Boot 默认配置
    • file:./config/
    • file:./
    • classpath:/config/
    • classpath:/

参考: Application Property Files

在开发的时候,希望大家能够在 ~/halo-dev/application.yml 中进行添加自定义配置。当然后面也会讲到如何用运行参数VM options 进行控制配置,届时可根据具体情况进行选择。

开发的时候,我们不建议直接更改项目源码中的所包含的配置文件,包括 application.ymlapplication-dev.ymlapplication-test.ymlapplication-user.yml