系统结构

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

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

工作目录

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

目录结构

├── application.yaml    // 用户自定义配置文件,默认是不存在的
├── db                  // H2 Database 数据库文件,可能还会有 halo.trace.db
│   ├── halo.mv.db
├── logs                // 日志目录
│   ├── spring.log
├── templates
│   └── themes          // Halo 主题目录
│       ├── anatole
└── 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