You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Strapi配置CSP后仍无法加载DigitalOcean Spaces图片

Strapi 加载DigitalOcean Spaces图片CSP报错修复方案

问题核心是CSP源匹配规则不符合DigitalOcean Spaces的实际资源地址格式,加上部分场景下配置不生效的常见坑,按以下步骤调整即可:

  • 修正CSP源匹配规则
    你之前配置的https://sgp1.digitaloceanspaces.com仅能匹配区域根域名的资源,但DigitalOcean Spaces的实际文件访问地址为https://<你的Bucket名称>.sgp1.digitaloceanspaces.com/文件路径格式,属于带子域名前缀的地址,原有规则无法覆盖,需要用通配符调整匹配范围。
  • 替换security中间件配置
    打开./config/middleware.js,找到strapi::security的配置段,替换为以下内容,其余中间件配置保持原有顺序和参数不要改动:
{
  name: 'strapi::security',
  config: {
    contentSecurityPolicy: {
      useDefaults: true,
      directives: {
        'connect-src': ["'self'", 'https:', 'http:'],
        'img-src': [
          "'self'",
          'data:',
          'blob:',
          'dl.airtable.com',
          'https://*.sgp1.digitaloceanspaces.com',
          'https://*.cdn.digitaloceanspaces.com',
        ],
        'media-src': [
          "'self'",
          'data:',
          'blob:',
          'dl.airtable.com',
          'https://*.sgp1.digitaloceanspaces.com',
          'https://*.cdn.digitaloceanspaces.com',
        ],
        'default-src': ["'self'"],
        upgradeInsecureRequests: null,
      },
    },
  },
}
  • 排查配置覆盖问题
    如果你是生产环境部署,需要检查./config/env/production/目录下是否存在独立的middleware.js配置文件,如果有必须把上述CSP规则同步到该文件中,否则根目录的配置会被环境专属配置覆盖,导致修改不生效。
  • 重启服务生效
    Strapi中间件配置修改后不支持热重载,必须完全终止原有Node进程后重新启动服务,启动后用浏览器硬刷新(Windows按Ctrl+Shift+R、Mac按Cmd+Shift+R)清除页面缓存再验证图片加载。

兜底排查:如果调整后仍有报错,直接看浏览器控制台CSP报错信息里标注的被拦截的完整域名,把该域名按格式补充到对应*-src指令的列表里即可,不要盲目加过宽的通配规则避免引入安全风险。

内容的提问来源于stack exchange,提问作者sarangkkl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 00:18:39