You need to enable JavaScript to run this app. Django如何将静态文件加载路径修改为AWS S3存储桶路径
优惠活动
大模型
产品
解决方案
定价
更多

Django如何将静态文件加载路径修改为AWS S3存储桶路径

解决方案

第一步:安装所需依赖

  • 安装django-storages(Django官方维护的第三方存储集成库)和boto3(AWS官方Python SDK):
pip install django-storages boto3

第二步:修改settings.py配置

  1. 把storages加入INSTALLED_APPS列表:
INSTALLED_APPS = [
    # 保留你原有配置的其他应用项
    'storages',
]
  1. 新增AWS S3相关配置,替换原有静态文件配置即可:
# AWS认证信息,强烈建议通过环境变量读取,不要硬编码在代码中
AWS_ACCESS_KEY_ID = "你的AWS访问密钥ID"
AWS_SECRET_ACCESS_KEY = "你的AWS秘密访问密钥"

# S3桶配置,和你实际的桶信息对应
AWS_STORAGE_BUCKET_NAME = "plantarte-assets"
AWS_S3_REGION_NAME = "us-east-2"
AWS_S3_FILE_OVERWRITE = False # 同名文件默认不覆盖,可按需调整
AWS_DEFAULT_ACL = "public-read" # 静态文件配置为公开可读,需要和你的S3桶权限匹配

# 配置静态文件使用S3存储
STATICFILES_STORAGE = "storages.backends.s3boto3.S3StaticStorage"
STATIC_URL = f"https://{AWS_STORAGE_BUCKET_NAME}.s3.{AWS_S3_REGION_NAME}.amazonaws.com/"

# 可选:如果本地开发时仍想使用本地静态文件,可以加判断区分环境
# DEBUG = True的情况下用本地配置,生产环境用S3
# if DEBUG:
#     STATIC_URL = '/static/'
#     STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
#     STATICFILES_DIRS = (os.path.join(BASE_DIR, 'website/static'),)

第三步:验证效果

你模板中原有的{% static %}标签不需要做任何修改,现在渲染出来的路径就会自动变成你期望的https://plantarte-assets.s3.us-east-2.amazonaws.com/website/images/home-slider/plantarte-espacio-4.jpg格式。
如果你还没有把静态文件上传到S3,可以执行python manage.py collectstatic命令,Django会自动把所有静态资源上传到你配置的S3桶对应路径下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 06:03:04