问题阐述
一开始我部署好halo博客后,就上传了文章和图片,然后在服务器备案之后,进行域名解析时发现,原来的文章和图片的链接前缀都是ip地址开头,导致博客地址从ip地址改为 域名之后,文章样式,图片无法打开。
解决办法
查阅halo官方论坛后,发现图片等信息是在./halo 下存储 数据信息在默认h2数据库目录下。
官方给出了解决方案
- 登录到服务器 进入halo文件目录 修改
vim ~/.halo/application.yaml
修改内容如下:
h2:
console:
settings:
web-allow-others: true
path: /h2-console
enabled: true
也就是将 web-allow-others 和 enabled 字段改为 true。(俩者都要为true)
改完之后重启 Halo。
# 使 Halo 开机自启
sudo systemctl enable halo
# 启动 Halo
sudo service halo start
# 重启 Halo
sudo service halo restart
# 停止 Halo
sudo service halo stop
# 查看 Halo 的运行状态
sudo service halo status
接着访问 ip:端口/h2-console 即可登录到控制台,执行以下 SQL 语句即可
此时注意 !!! jdbc的连接路径 ,如果连接错误 sql将会报错 域名的全称写完整。
UPDATE OPTIONS SET OPTION_VALUE = replace(OPTION_VALUE , '旧域名','新域名') ;
UPDATE COMMENTS SET AUTHOR_URL = replace(AUTHOR_URL , '旧域名','新域名') ;
UPDATE PHOTOS SET THUMBNAIL = replace(THUMBNAIL , '旧域名','新域名') ;
UPDATE PHOTOS SET URL = replace(URL , '旧域名','新域名') ;
UPDATE POSTS SET FORMAT_CONTENT = replace(FORMAT_CONTENT , '旧域名','新域名') ;
UPDATE POSTS SET ORIGINAL_CONTENT = replace(ORIGINAL_CONTENT , '旧域名','新域名') ;
UPDATE POSTS SET THUMBNAIL = replace(THUMBNAIL, '旧域名','新域名') ;
UPDATE THEME_SETTINGS SET SETTING_VALUE = replace(SETTING_VALUE, '旧域名','新域名') ;
MySQL 解决方案
除了连接方式不同,其他一样。