本文最后更新于45 天前,其中的信息可能已经过时,如有错误请发送邮件到3449421627@qq.com
一、验证 Gitee 图片的直接访问性
- 获取图片的完整 Gitee 原始 URL
在 Markdown 中,图片链接应为以下格式(注意raw
分支路径):markdown
- 错误示例(非 raw 路径):
https://gitee.com/user/repo/blob/master/images/pic.jpg
- 正确示例(raw 路径):
https://gitee.com/user/repo/raw/master/images/pic.jpg
- 错误示例(非 raw 路径):
- 在浏览器中直接访问图片 URL
- 如果返回
403 Forbidden
→ 触发 Gitee 防盗链机制 - 如果返回
404 Not Found
→ 检查图片路径或仓库权限
- 如果返回
二、绕过 Gitee 防盗链的解决方案
1. 强制隐藏 Referer(推荐)
在 WordPress 主题的 header.php
中添加以下标签,禁止发送来源页面的 Referer 信息:
html<meta name="referrer" content="no-referrer">
操作步骤:
- 进入 WordPress 后台 → 外观 → 主题编辑器
- 选择
header.php
→ 在<head>
标签内插入上述代码 → 保存
2. 通过 Nginx 反向代理转发图片(高级方案)
将 Gitee 图片请求通过你的服务器代理,隐藏真实来源:
nginx# 在 Nginx 配置文件中添加
location /gitee-img/ {
proxy_pass https://gitee.com/;
proxy_set_header Referer "";
proxy_set_header Host "gitee.com";
}
使用方法:
将图片 URL 替换为代理路径(如原链接为 https://gitee.com/user/repo/raw/master/pic.jpg
→ 改为 https://你的域名/gitee-img/user/repo/raw/master/pic.jpg
)
三、检查 WordPress 前端配置
1. HTTPS 混合内容问题
如果 WordPress 启用了 HTTPS,但图片链接使用 HTTP,浏览器会阻止加载。
解决方法:
- 确保图片 URL 为
https://
开头 - 在
wp-config.php
中强制全站 HTTPS:phpdefine('FORCE_SSL_ADMIN', true); $_SERVER['HTTPS'] = 'on';
2. 浏览器缓存干扰
即使服务器修复了问题,浏览器可能仍缓存了旧的错误响应。
解决方法:
- 按
Ctrl+Shift+R
(Windows)或Cmd+Shift+R
(Mac)强制刷新页面 - 使用无痕模式测试
四、验证 Gitee 仓库权限
- 确保仓库为公开(Public)
- 进入 Gitee 仓库 → 管理 → 基本信息 → 检查「是否开源」
- 检查图片文件的原始权限
- 文件需在
raw
路径下可直接访问(如https://gitee.com/user/repo/raw/master/pic.jpg
)
- 文件需在
五、终极替代方案(若问题持续)
1. 迁移至 GitHub + CDN 加速
GitHub 无防盗链限制,通过 jsDelivr CDN 加速:
markdown
2. 自建图床(推荐)
使用轻量级工具如 PicList + 阿里云 OSS,完全控制图片外链策略:
bash# 安装 PicList
docker run -d --name piclist -p 36677:36677 -v /path/to/config:/root/.piclist xxxxx/piclist
六、验证流程
- 在 Markdown 中确认图片 URL 正确(包含
raw
分支路径) - 在 WordPress 页面添加
no-referrer
元标签 - 通过浏览器开发者工具检查 Network 请求
- 打开浏览器控制台(F12)→ Network → 查看图片请求的 Response Headers
- 如果状态码为 403,表示防盗链生效 → 按方案二处理
总结
如果已确认图片 URL 正确且服务器通信正常,90% 以上的概率是 Gitee 的防盗链机制导致。优先通过 no-referrer
元标签或反向代理绕过限制。若需长期稳定使用,建议迁移至专业图床服务。