Appearance
问题现象
在后台或移动端上传图片后,图片在列表、详情页或手机端显示为破损图标、空白裂图,或在开发者工具中查看图片链接返回 404 Not Found、403 Forbidden、CORS 跨域报错 或 Mixed Content 混合内容警告。
常见原因与解决步骤
检查后台系统网站域名配置(最常见)
- 登录平台总后台 -> 【设置】 -> 【系统设置】 -> 【基础设置】(或站点配置)。
- 查看 网站域名 / 接口域名 设置:
- 必须填写完整的站点访问域名,包括前缀协议,例如:
https://www.yourdomain.com(若开启了 SSL,必须以https://开头,避免引发浏览器 Mixed Content 拦截)。 - 末尾不得带有斜杠
/。
- 必须填写完整的站点访问域名,包括前缀协议,例如:
- 点击【保存】并重启 Swoole 守护进程。
检查云存储配置(七牛云 / 阿里云 OSS / 腾讯云 COS / 华为云 OBS)
若系统启用了第三方对象云存储:
- 检查后台云存储配置中的 空间名称(Bucket)、访问密钥(AK/SK) 及 绑定的自定义域名 是否正确。
- 确认自定义云存储域名已配置有效的 SSL 证书(支持 HTTPS 访问)。
- 确认云存储 Bucket 的访问权限已设置为 公共读(Public Read)。
- 若图片在跨端(如 H5 页面中生成海报或 canvas 绘图)无法加载,需在云存储控制台开启 CORS 跨域资源共享规则(允许来源
*,允许 MethodsGET, POST, HEAD)。
本地存储模式下的 Nginx 静态资源拦截检查
若使用的是服务器本地存储:
- 检查上传目录物理路径
/www/wwwroot/你的项目/public/uploads是否存在该文件。 - 检查 Nginx 配置文件中是否放行了静态图片后缀的访问:nginx
location ~ .*\.(gif|jpg|jpeg|png|bmp|webp|ico|svg)$ { root /www/wwwroot/你的项目/public; expires 30d; access_log off; } - 确保
public/uploads目录权限为755或777,所有者为www:www。