前言
博客内文章的图片和封面图挂了有一段时间了,前段时间折腾过一次,把文章内的图片恢复了,但因为封面图是使用插件导入的外链,以至于跟一般的图片挂了解决方式还不太一样,主要是当时没找到插件是以什么方式存储的链接,今天恢复另外一个站时,看到了类似的解决方案,于是再次折腾。
说实话,写博客这么久,每次遇到的问题稀奇古怪,解决的过程都极其繁琐,所以现在很多时候都不太愿意去动现有的一些东西,除非实在是非解决不可,比如这次……
解决
核心
本次驱使我再次折腾的很大一方面,是因为在恢复其他站访问的时候,找到了导入外链图片链接的字段:guid,不然估计还会停摆很久。
其实找到这个字段并不困难,主要是因为,个人很长一段时间没有写代码,以及本身对SQL就只会基本的增删改查,所以导致很多问题解决起来比较麻烦。
方法
UPDATE wp_posts SET guid = REPLACE( guid, '查找内容', '替换内容' )
演示
UPDATE wp_posts SET guid = REPLACE( guid, 'https://r.photo.store.qq.com/', 'https://images.weserv.nl/?url=https://r.photo.store.qq.com/' )
注意:操作之前必须备份数据库,并且下载至本地电脑。
插曲
操作完数据库之后,数据库里的数据已经被修改好了,我打开媒体库查看,却发现相关的链接并没有被修改。
这让我有些惊讶,因为同样的操作,另外一个网站的图片已经能够正常显示了,于是我开始排查问题。
首先我从媒体库插入了一条外链,查看数据库是否正常新增,结果是正常的,数据库增加了那条外链。
我再从数据库将外链的请求头去掉,但媒体库的链接却没有任何变化,这时我从媒体库将图片删除,此时数据库对应的链接也随之删除。
由此得知,媒体库对应的数据表以及字段没有问题,新增和删除也没有问题,只是修改的数据不更新。
我立马想到了缓存,因为博客最初创建时,使用的是虚拟主机,当时又卡又慢,所以做了很多优化。
我打开腾讯云看是不是使用了 CDN,结果是没有,再把博客运行的所有插件都停用,数据还是没有修改。
但直觉告诉我,问题应该出在水煮鱼的 WPJAM 插件上,然后我就打开搜索引擎进行搜索,结果确实找到了相关索引。
很早之前折腾过 WPJAM 中关于 Memcached 的功能,当时一方面考虑访问速度,另外一方面就是想在后台显示服务器的相关信息。
但不知道什么时候什么时候开始,这个功能消失,我也忘记了有这么一回事,直到今天才发现。
于是,尝试重启 Memcached,刷新媒体库,图片正常显示,完美解决。
后话
就像前言所说,其实很多时候都不太想去折腾博客,毕竟折腾一次,又要死不知道多少脑细胞,但毕竟问题摆在这了,兵来将挡,迎难而上便是,逃~。
参考
《了不起的 Markdown》
*本文使用 Markdown 创作
Comments | 2 条评论
HowieHz 博主
感觉博主站点好复杂,各种缓存,需要维护的功能。
我就直接全站挂个多吉云,好处是不用动脑。
唯一的缺点是每次更新文章要去后台刷新下缓存。
自己调用api刷新也没啥问题,总体上还是不需要耗费什么脑细胞。
龙鲲 博主
@HowieHz
其实也没啥,就是早年追求访问速度,于是就会想各种各样的方法来加快访问速度
但基本是治标不治本,最便捷的方法还是换个好服务器,上大带宽