目 录CONTENT

文章目录

【Halo 迁移后后台转圈 + 前台 Template index was not found 完整解决流程】

JIN
JIN
2026-02-24 / 0 评论 / 0 点赞 / 1 阅读 / 0 字
广告 广告

【Halo 迁移后后台转圈 + 前台 Template index was not found 完整解决流程】

适用场景:

  • Halo 从一台 VPS 迁移到另一台
  • 后台登录一直转圈
  • 前台访问显示:Template index was not found.
  • 插件/主题提示版本过低

一、问题本质分析(必须先理解)

出现这组症状,本质通常是三类问题叠加:

现象 真正原因
后台登录一直转圈 Halo 运行时报错(依赖缺失 / 版本问题)
前台 Template index was not found 当前启用主题不存在
主题安装失败 Halo 主程序版本过低

二、第一步:确认容器是否正常

进入 Halo 目录:

cd ~/data/docker_data/halo

查看日志:

docker logs --tail=120 halo

如果看到类似错误:

NoClassDefFoundError: org/bouncycastle/crypto/params/Argon2Parameters$Builder

说明:

当前 Halo 镜像存在依赖问题(旧版本问题)


三、升级 Halo(核心步骤)

⚠️ 不要纠结,直接升级到 2.22.x 以上版本。


3.1 修改 docker-compose.yml

把:

image: halohub/halo:2.20.18

改成:

image: halohub/halo:2.22

你可以直接执行:

sed -i 's#image: halohub/halo:2\.20.*#image: halohub/halo:2.22#g' docker-compose.yml

3.2 拉取新镜像 + 强制重建

docker compose pull halo
docker compose up -d --force-recreate

查看版本:

docker logs --tail=20 halo

确认出现:

Version: 2.22.x

3.3 验证服务是否正常

curl -I http://127.0.0.1:8090/

返回:

HTTP/1.1 404 Not Found

说明:

Halo 服务正常,只是首页模板不存在


四、后台登录验证

浏览器访问:

https://你的域名/login

如果可以正常登录:

✔ 登录链路已修复
✘ 如果仍转圈 → F12 看 Network 状态码


五、解决 Template index was not found

本质原因:

当前主题不存在(themes 目录为空)

服务器验证:

ls -lah ~/data/docker_data/halo/halo_app_data/themes

如果显示:

No such file or directory

说明主题文件确实没了。


5.1 正确处理方式

进入后台:

后台 → 主题 → 安装主题 → 启用

刷新前台即可恢复。


六、插件版本不兼容问题

如果日志出现:

requires >=2.22.0

说明:

插件版本高于当前 Halo 版本

解决方式:

升级 Halo(见第三步)


七、external-url 必须正确(避免缓存和跳转问题)

在 docker-compose.yml 中确认:

- --halo.external-url=https://你的域名/

注意:

  • 必须是最终访问域名
  • 建议统一 https
  • 建议保留结尾 /

修改后重启:

docker compose up -d --force-recreate

八、完整恢复判断标准

当以下条件全部满足时,说明系统彻底恢复:

✔ docker logs 无异常
✔ 后台可登录
✔ 前台不再报 Template 错误
✔ 主题可正常安装
✔ 插件版本不再提示系统版本过低


九、下次再遇到相同问题的最短处理流程

直接执行:

① docker logs 看是否版本问题
② 升级到 image: halohub/halo:2.22
③ docker compose up -d --force-recreate
④ 后台重新安装主题

不要再去:

  • 乱改数据库
  • 乱恢复备份
  • 乱删除 mysql
  • 怀疑反向代理

90% 的情况都是版本 + 主题问题。


十、架构反思(避免再次踩坑)

这次事故的真正原因是:

  1. 使用了较旧 Halo 版本(2.20.x)
  2. 插件/主题要求更高版本
  3. 迁移时主题文件未保留
  4. 没第一时间看日志

十一、最终建议的稳定版本配置(推荐)

docker-compose.yml 建议长期使用:

image: halohub/halo:2.22

而不是固定死某个小版本。


十二、核心认知总结

  • 登录转圈 ≠ 反向代理问题
  • Template index 错误 ≠ 数据丢失
  • 404 ≠ 服务没启动
  • 日志是第一诊断工具
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
广告 广告

评论区