问题回顾

从 CSDN 搬运文章到个人博客后,图片经常加载不出来:

1
<img src="https://i-blog.csdnimg.cn/img_convert/95b998a553b84292c67c6e38b2a2204e.png" referrerpolicy="no-referrer" alt="image">

浏览器控制台报 403,这是因为 CSDN 的 CDN 检测到请求来源不是 csdn.net 就给拦截了。

解决方案就是把 <img> 标签加上 referrerpolicy="no-referrer"

1
2
- <img src="https://i-blog.csdnimg.cn/xxx.png" referrerpolicy="no-referrer" alt="image">
+ <img src="https://i-blog.csdnimg.cn/xxx.png" referrerpolicy="no-referrer" alt="image">

但文章多了怎么办?几百张图片一张张改?不可能!


工具介绍

CSDN 图片修复工具 是一个带图形界面的 Python 程序,双击就能运行,一键修复全部 CSDN 图片

功能亮点

功能 说明
🔍 自动扫描 递归扫描 source/_posts/ 下所有 .md 文件
📋 预览清单 显示哪些文件有 CSDN 图片、各有多少张
⚡ 一键修复 点击按钮,批量把 ![]() 转为 <img referrerpolicy>
✅ 结果反馈 修复成功/失败都有清晰提示
🎨 深色主题 简洁现代 UI,看着舒服

使用方法

第一步:启动工具

在博客根目录下,双击 启动CSDN修复工具.bat 文件:

![扫描界面示意图](工具已放置在博客根目录)

第二步:扫描文件

点击 🔍 扫描待修复图片 按钮,工具会列出所有需要修复的文件及图片数量。

第三步:一键修复

点击 ⚡ 一键修复全部,确认后自动批量转换。

第四步:重新部署

1
hexo clean && hexo g && hexo d

重新生成后,所有之前不显示的图片就都能正常加载了!


工作原理

1
2
3
4
5
6
7
8
9
10
11
12
扫描阶段:
遍历所有 .md 文件

正则匹配: <img src="https://i-blog.csdnimg.cn/..." referrerpolicy="no-referrer" alt="xxx">

列出文件清单 + 图片数量

修复阶段:
将匹配到的内容替换为:
<img src="原URL" referrerpolicy="no-referrer" alt="xxx">

写回文件 → 完成!

referrerpolicy="no-referrer" 的作用:告诉浏览器请求这张图片时不发送 Referer 头,CDN 不知道用户从哪个网站来的,就无法判断是否为”盗链”。


常见问题

Q: 修复后图片仍然不显示?

检查 public/ 下的 HTML 文件是否已更新。先 hexo cleanhexo g 确保重新生成。

Q: 以后发新文章怎么办?

新文章如果也引用了 CSDN 图片,修复后工具可以随时重新扫描。建议养成习惯:复制文章后先双击工具修复一遍

Q: 支持其他图床吗?

目前主要针对 CSDN(i-blog.csdnimg.cn),其他平台如知乎、掘金的防盗链类似,只需改代码里的域名正则即可。


总结

从”手动改几百张图片”到”一键修复”,工具虽小但解决了大痛点。如果你也有从 CSDN 搬运文章的需求,这个工具能让你的效率提升 100 倍!🚀