# AI 建站、移动端 App 及多项功能优化，Halo 2.21 发布

原文：<https://www.halo.run/archives/halo-2.21-released>

Halo 是一款强大易用的开源建站工具，它让你无需太多的技术知识就可以快速搭建一个博客、网站或者内容管理系统。具备可插拔架构、主题套用、富文本编辑器等多重特性，支持用户根据自己的喜好选择不同类型的插件及主题模板来定制化自己的站点功能及外观。让内容创作和发布更加便捷生动。

截至目前（2025 年 Q2 季度），Halo 已经在 Docker Hub 获得了超过 250 万次下载，GitHub Star 数突破 35 k，并拥有一百多名社区贡献者。

2025 年 06 月 15 日，强大易用的开源建站工具 Halo 正式发布 2.21.0 版本。

## ⚠️ 重要提示

1.  此版本已经提升 JDK 版本至 21，意味着在开发环境和使用 jar 文件部署均需要升级 JDK 版本，Docker 部署方式无影响。
    
2.  此版本移除了部分旧版本的迁移脚本，所以请确保当前的版本至少为 2.20.x。如果不是，建议先升级到 2.20 的最新版本运行一段时间再升级到此版本。
    
3.  此版本移除了部分已经过时的 API，部分插件可能会受到影响。在测试阶段，常用插件已经完成适配，建议在升级 2.21 版本前后都检查一下插件是否有更新。如果你当前使用的插件还未完成兼容适配，请先向插件进行反馈。
    

## **亮点更新**

### AI 建站（专业版）

近期我们上线了全新的 AI 产品 [UPage](https://www.lxware.cn/upage)，可以实现一句话生成任意类型的网站，并支持一建部署到 1Panel、Netlify、Vercel。

![](https://www.halo.run/upload/2.21-UPage.png)

### 移动端 App（专业版）

近期我们上架了 Halo 的移动端 App，[欢迎试用](https://www.lxware.cn/halo-app)。

![](https://www.halo.run/upload/2.21-app.png)

### 人机验证（专业版）

在 Halo 2.21 中，我们为登录、注册、发送验证码等关键位置添加了人机验证的功能，这能在很大程度上防止网站被恶意注册和暴力破解。

**请注意：此功能需要在 HTTPS 环境下才能使用，非 HTTPS 环境可能造成因为验证问题导致无法登录 Console。**

支持在后台进行一些个性化设置：

![](https://www.halo.run/upload/2.21-%E4%BA%BA%E6%9C%BA%E9%AA%8C%E8%AF%81%E8%AE%BE%E7%BD%AE.png)

### Console 仪表盘改进

在之前的版本中，Console 的仪表盘功能非常基础，只能进行最基本的小部件位置调整，并且无法持久化配置数据。在这个版本中，我们全面重构了仪表盘功能，带来了以下关键特性：

1.  支持持久化仪表盘配置。
    
2.  支持为不同尺寸的设备分别配置布局（响应式布局）。
    
3.  支持通过插件扩展更多小部件。
    
4.  内置堆叠小部件功能，可以将多个小部件放在同一位置进行堆叠显示，支持自动切换和手动切换。
    

![](https://www.halo.run/upload/2.21-%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%BC%96%E8%BE%91.png)

**编辑仪表盘**

![](https://www.halo.run/upload/2.21-%E4%BB%AA%E8%A1%A8%E7%9B%98%E5%B0%8F%E9%83%A8%E4%BB%B6%E5%88%97%E8%A1%A8.png)

**小部件中心**

![](https://www.halo.run/upload/2.21-%E4%BB%AA%E8%A1%A8%E7%9B%98%E5%A0%86%E5%8F%A0%E9%83%A8%E4%BB%B6.gif)

**堆叠小部件**

![](https://www.halo.run/upload/2.21-%E4%BB%AA%E8%A1%A8%E7%9B%98%E6%89%A9%E5%B1%95%E5%B0%8F%E9%83%A8%E4%BB%B6.png)

**插件扩展 - SEO 小部件**

### 外部访问地址

外部访问地址是 Halo 中一个比较重要的配置，但在之前的版本中只能通过修改配置文件的方式来修改外部访问地址，根据社区反馈，很多用户容易忽略这个配置，从而导致使用过程中出现问题。

在这个版本中，Halo 支持了在 Console 控制台修改外部访问地址。

![](https://www.halo.run/upload/2.21-%E5%A4%96%E9%83%A8%E8%AE%BF%E9%97%AE%E5%9C%B0%E5%9D%80.png)

### 评论管理改进

在这个版本中，我们对评论管理功能进行了优化，主要改进包括：

1.  优化评论列表展示，现在能够更加直观的展示评论内容。
    
2.  支持查看评论的详细数据，包括评论者信息、UA 等。
    
3.  改为先显示评论的详细信息，再由管理员根据这些信息决定是否通过审核。
    
4.  审核时支持回复。
    

![](https://www.halo.run/upload/2.21-%E8%AF%84%E8%AE%BA%E5%88%97%E8%A1%A8.png)

**评论列表**

![](https://www.halo.run/upload/2.21-%E8%AF%84%E8%AE%BA%E5%AE%A1%E6%A0%B8.png)

**评论审核**

### 移动端改进

在这个版本中，我们进行了大量的移动端样式改进，包括仪表盘小部件的布局、更加完善的菜单、数据列表的布局优化等。

![](https://www.halo.run/upload/2.21-%E7%A7%BB%E5%8A%A8%E7%AB%AF@%E4%BB%AA%E8%A1%A8%E7%9B%98.jpg)

![](https://www.halo.run/upload/2.21-%E7%A7%BB%E5%8A%A8%E7%AB%AF@%E8%8F%9C%E5%8D%95.jpg)

![](https://www.halo.run/upload/2.21-%E7%A7%BB%E5%8A%A8%E7%AB%AF@%E8%AF%84%E8%AE%BA.jpg)

![](https://www.halo.run/upload/2.21-%E7%A7%BB%E5%8A%A8%E7%AB%AF@%E6%96%87%E7%AB%A0.jpg)

![](https://www.halo.run/upload/2.21-%E7%A7%BB%E5%8A%A8%E7%AB%AF@%E7%BC%96%E8%BE%91%E5%99%A8.jpg)

![](https://www.halo.run/upload/2.21-%E7%A7%BB%E5%8A%A8%E7%AB%AF@%E6%8F%92%E4%BB%B6.jpg)

## 其他

### 插件改进

除了 Halo 本身的改进外，我们最近还优化了部分插件的前端构建方案，可以将 JS 和 CSS 进行分块处理，实现异步加载控制台页面或者组件，这可以降低最终生成的 `bundle.js` 和 `bundle.css` 大小，提升 Console 和 UC 的首屏渲染速度。以 Halo 官网为例，优化前需要加载接近 2MB 的 bundle.js，优化后仅需 300KB。

## **完整更新日志**

### **新特性**

-   支持在概览页面配置外部访问地址。 by [**@JohnNiang**](https://github.com/JohnNiang) in [#7459](https://github.com/halo-dev/halo/pull/7459)
    
-   支持在初始化页面设置外部访问地址。 by [**@JohnNiang**](https://github.com/JohnNiang) in [#7488](https://github.com/halo-dev/halo/pull/7488)
    
-   重构 Console 端仪表盘，支持响应式布局、持久化配置，支持通过插件扩展小部件。 by [**@ruibaby**](https://github.com/ruibaby) in [#7496](https://github.com/halo-dev/halo/pull/7496)
    
-   为仪表盘添加堆叠小部件。 by [**@ruibaby**](https://github.com/ruibaby) in [#7525](https://github.com/halo-dev/halo/pull/7525)
    
-   为仪表盘添加网页嵌入小部件。 by [**@ruibaby**](https://github.com/ruibaby) in [#7516](https://github.com/halo-dev/halo/pull/7516)
    
-   文章管理列表支持显示封面图。 by [**@ruibaby**](https://github.com/ruibaby) in [#7519](https://github.com/halo-dev/halo/pull/7519)
    

### **功能优化**

-   编辑器支持为链接设置 **搜索引擎忽略链接关系**。 by [**@Nimbus3009**](https://github.com/Nimbus3009) in [#7444](https://github.com/halo-dev/halo/pull/7444)
    
-   用户搜索支持根据邮箱地址。 by [**@liuyiwuqing**](https://github.com/liuyiwuqing) in [#7441](https://github.com/halo-dev/halo/pull/7441)
    
-   优化 Console 和 UC 中数据列表的 UI 在不同尺寸设备下的表现。 by [**@ruibaby**](https://github.com/ruibaby) in [#7383](https://github.com/halo-dev/halo/pull/7383)
    
-   移除插件列表的时间字段，并在插件详情中显示安装时间。 by [**@ruibaby**](https://github.com/ruibaby) in [#7494](https://github.com/halo-dev/halo/pull/7494)
    
-   优化评论管理的 UI，支持查看评论的详细数据。 by [**@ruibaby**](https://github.com/ruibaby) in [#7481](https://github.com/halo-dev/halo/pull/7481)
    
-   将 Console 端文章列表的发布时间改为语义化时间。 by [**@ruibaby**](https://github.com/ruibaby) in [#7526](https://github.com/halo-dev/halo/pull/7526)
    
-   优化 Console 端的对话框在移动端下的样式。 by [**@ruibaby**](https://github.com/ruibaby) in [#7512](https://github.com/halo-dev/halo/pull/7512)
    
-   优化 Console 的全局依赖文件名，以获得更好的缓存利用率。 by [**@ruibaby**](https://github.com/ruibaby) in [#7530](https://github.com/halo-dev/halo/pull/7530)
    
-   优化移动端的菜单，支持切换 Console / UC，支持退出登录和返回到首页。 by [**@ruibaby**](https://github.com/ruibaby) in [#7542](https://github.com/halo-dev/halo/pull/7542)
    
-   优化移动端下文章编辑页面的样式。 by [**@ruibaby**](https://github.com/ruibaby) in [#7544](https://github.com/halo-dev/halo/pull/7544)
    
-   移除无用的依赖，软件包的体积减少近 15%。 by [**@JohnNiang**](https://github.com/JohnNiang) in [#7549](https://github.com/halo-dev/halo/pull/7549)
    
-   支持在附件详情弹窗中复制完整的附件地址。 by [**@ruibaby**](https://github.com/ruibaby) in [#7550](https://github.com/halo-dev/halo/pull/7550)
    

### **问题修复**

-   修复因 Locale 解析错误导致无法访问页面的问题。 by [**@JohnNiang**](https://github.com/JohnNiang) in [#7458](https://github.com/halo-dev/halo/pull/7458)
    
-   修复当有已选择附件时，上传新附件导致所选附件状态异常的问题。 by [**@ruibaby**](https://github.com/ruibaby) in [#7487](https://github.com/halo-dev/halo/pull/7487)
    
-   修复 Console 的全局搜索能搜索出系统保留用户的问题。 by [**@ruibaby**](https://github.com/ruibaby) in [#7486](https://github.com/halo-dev/halo/pull/7486)
    
-   修复模态框标题文字溢出的问题。 by [**@ruibaby**](https://github.com/ruibaby) in [#7546](https://github.com/halo-dev/halo/pull/7546)
    
-   修复用户资料页面头像在 Safari 浏览器下的阴影问题。 by [**@ruibaby**](https://github.com/ruibaby) in [#7551](https://github.com/halo-dev/halo/pull/7551)
    

### **依赖更新**

-   升级依赖 Spring Boot 至 3.5.0。 by [**@JohnNiang**](https://github.com/JohnNiang) in [#7467](https://github.com/halo-dev/halo/pull/7467)
    
-   升级依赖 Lucene 至 10.2.1。 by [**@JohnNiang**](https://github.com/JohnNiang) in [#7476](https://github.com/halo-dev/halo/pull/7476)
    

### **开发者相关**

-   更新最低运行环境为 Java 21。 by [**@JohnNiang**](https://github.com/JohnNiang) in [#7451](https://github.com/halo-dev/halo/pull/7451)
    
-   添加用户登录/登出事件。 by [**@liuyiwuqing**](https://github.com/liuyiwuqing) in [#7440](https://github.com/halo-dev/halo/pull/7440)
    
-   UI 组件添加 `VEntityContainer` 组件，以优化数据列表的样式。 by [**@ruibaby**](https://github.com/ruibaby) in [#7383](https://github.com/halo-dev/halo/pull/7383)
    
-   提供根据分组获取和更新用户预设的 API。 by [**@JohnNiang**](https://github.com/JohnNiang) in [#7495](https://github.com/halo-dev/halo/pull/7495)
    
-   提供更易用的存储策略配置查询和更新接口。 by [**@JohnNiang**](https://github.com/JohnNiang) in [#7527](https://github.com/halo-dev/halo/pull/7527)
    
-   `@halo-dev/ui-plugin-bundler-kit` 支持自定义 `outDir` 和 `manifestPath`。 by [**@ruibaby**](https://github.com/ruibaby) in [#7552](https://github.com/halo-dev/halo/pull/7552)
    
-   Console 页面数据列表的字段和操作选项支持扩展。 by [**@ruibaby**](https://github.com/ruibaby) in [#7553](https://github.com/halo-dev/halo/pull/7553)
    

## 升级文档

[https://docs.halo.run](https://docs.halo.run/category/%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97)
