【发布时间】:2022-01-11 15:52:07
【问题描述】:
我尝试使用 django-storages 从本地静态文件移动到 S3。我仔细跟踪documentation,但仍然无法访问静态文件。
在我的本地环境中:
STATIC_URL = '/static/'
在settings.py 中,一切正常。
当我按照文档显示添加所有 S3 参数时:
STATIC_URL = 'https://django-main.s3.amazonaws.com/'
ADMIN_MEDIA_PREFIX = 'https://django-main.s3.amazonaws.com/admin/' # tried with this and also without this
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3StaticStorage'
AWS_ACCESS_KEY_ID = '<AWS_ACCESS_KEY_ID>'
AWS_SECRET_ACCESS_KEY = '<AWS_SECRET_ACCESS_KEY>'
AWS_STORAGE_BUCKET_NAME = 'bucket-name'
我运行了python manage.py collectstatic,它似乎工作正常并将静态文件上传到存储桶。
但是运行服务器并进入管理页面看起来像这样:
这是因为它无权访问静态文件。没有错误被抛出/显示
有什么想法吗?
编辑:
但我将 settings.py 更改为:
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
并确保访问可用(放置一个断点并使用这些确切的环境变量从该存储桶中使用 boto3 下载一个 css 文件,但仍然没有解决方案
【问题讨论】:
-
您是否检查了哪个 url 用于加载静态文件?您的 S3 配置是否正确?
-
@hendrikschneider 我在哪里可以看到被调用的 url?我相信我的 S3 配置正确,因为
collectstatic工作并将所有文件上传到正确的存储桶 -
在浏览器中查看页面的html
-
@hendrikschneider 请查看编辑
标签: django django-storage python-django-storages