Django Admin静态资源存DigitalOcean Spaces时CORS问题求助
解决Django Admin静态资源存DigitalOcean Spaces后的CORS字体加载错误
你的Django corsheaders配置之所以没生效,核心原因是:现在字体文件是直接从DigitalOcean Spaces返回的,请求并没有经过Django服务器,所以Django的CORS中间件无法给Spaces的响应添加Access-Control-Allow-Origin头。要解决这个问题,你需要直接在DigitalOcean Spaces的存储桶中配置CORS规则。
具体配置步骤:
- 登录DigitalOcean控制台,找到你的目标Spaces存储桶
- 切换到Settings标签页,找到CORS Configuration选项
- 点击Edit,添加以下CORS规则(根据你的实际环境调整):
[ { "AllowedOrigins": ["http://127.0.0.1:9000"], "AllowedMethods": ["GET", "HEAD"], "AllowedHeaders": ["*"], "ExposeHeaders": [] } ]- 若生产环境存在多个域名,可在
AllowedOrigins数组中添加所有需要允许的域名(比如["https://your-production-domain.com", "http://127.0.0.1:9000"]) - 静态资源仅需
GET和HEAD请求方法,无需开放其他方法 AllowedHeaders设为*可兼容所有可能的请求头,避免遗漏
- 若生产环境存在多个域名,可在
后续验证步骤:
- 保存配置后,等待1-2分钟让规则生效
- 清除浏览器缓存(或使用无痕模式)重新加载页面,验证字体是否正常加载
- 若你使用了CDN服务,需同步刷新CDN缓存,确保旧的无CORS头的响应被替换
内容的提问来源于stack exchange,提问作者Mohammad AlQudah
相关产品推荐
相关产品推荐

