【发布时间】:2021-02-16 09:59:51
【问题描述】:
我已经配置了一个 S3 存储桶来存储和提供 Django 网站的静态和媒体文件,目前只是尝试获取管理页面所需的静态文件等等。
这是我的设置文件中的所有静态和 AWS 配置信息:
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
DEFAULT_FILE_STORAGE = 'config.storage_backends.MediaStorage'
#used to authenticate with S3
AWS_ACCESS_KEY_ID = 'AKIAWWJOJKZGFSJO2UPW' #not real one
AWS_SECRET_ACCESS_KEY = 'KNg1z5wXWiDRAIh4zLiHgbD2N3wtWZTK' #not real one
#for endpoints to send or retrieve files
AWS_STORAGE_BUCKET_NAME = 'my-static' #not real bucket name
AWS_DEFAULT_ACL = None
AWS_S3_CUSTOM_DOMAIN = f'{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com'
AWS_S3_OBJECT_PARAMETERS = {'CacheControl': 'max-age=86400',}
AWS_LOCATION = 'static'
STATIC_ROOT = 'static'
STATIC_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/{AWS_LOCATION}/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'config/static'),
]
当然,为了这篇文章的目的,我用假变量替换了任何敏感变量。我已经阅读了许多教程和其他帖子,并且似乎正确配置了我的 STATIC_URL,但是每当我运行服务器并转到管理页面时,都没有应用任何 css。我认为它没有正确地从存储桶中检索静态文件(它们都上传到 S3 存储桶),但我不知道该怎么做。
【问题讨论】:
-
你运行
python manage.py collectstatic命令了吗? -
如果您的应用在 EC2 上运行,理想情况下,您应该完全删除 IAM 用户凭证并依赖一个 IAM 角色,EC2 实例是通过该角色启动的 (example)。
-
@ArakkalAbu 是的,我有,所有静态文件都转移到存储桶中
标签: python django amazon-web-services amazon-s3