【问题标题】:django storages breaks the admin staticfilesdjango storages 破坏了管理静态文件
【发布时间】: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


【解决方案1】:

问题在于存储桶读取权限不是公开的。更改权限有效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-05
    • 2017-01-01
    • 2011-08-16
    • 2015-08-16
    • 1970-01-01
    • 2021-10-21
    • 2014-06-10
    • 2020-08-12
    相关资源
    最近更新 更多