【问题标题】:Django collectstatic is not pushing to AWS S3Django collectstatic 没有推送到 AWS S3
【发布时间】:2021-05-03 19:40:58
【问题描述】:

我已经多次搜索和重新配置我的项目。我创建了新的 AWS 账户,但仍然遇到同样的问题。

python manage.py collectstatic 不断恢复到我在使用白噪声时使用的旧文件夹。我已经从我安装 boto3、django-storages 的应用程序中注释掉了白噪声中间件和白噪声。

每次我运行 collectstatic 它都会创建一个新目录 staticfiles 并显示

286 static files copied to '/home/user/Documents/django-project/staticfiles', 841 post-processed.

我尝试了命令python manage.py collectstatic --noinput --clear,但得到了相同的输出。

我的 Django 的 AWS S3 存储桶配置

# AWS service variables
AWS_SECRET_KEY_ID = config('AWS_SECRET_KEY_ID')
AWS_SECRET_ACCESS_KEY = config('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = config('AWS_STORAGE_BUCKET_NAME')
AWS_S3_CUSTOM_DOMAIN = 'd1l47x08equ47x.cloudfront.net'
AWS_S3_OBJECT_PARAMETERS = {
    'CacheControl': 'max-age=86400',
}

AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
AWS_LOCATION = 'static'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

当我运行 collect static 时没有任何反应。

【问题讨论】:

    标签: python django amazon-web-services amazon-s3 collectstatic


    【解决方案1】:

    我并不完全精通 AWS S3,但我已经设置了一个工作项目,看起来您可能缺少AWS_S3_REGION_NAME,我认为您拥有AWS_SECRET_KEY_ID 的位置应该是AWS_ACCESS_KEY_ID

    【讨论】:

    • 我刚刚更正了 AWS_ACCESS_KEY_ID 但是当我尝试收集静态时什么也没发生,它只会创建一个文件夹 staticfiles 并且不会推送到 AWS s3 存储桶
    • 非常感谢您评论 django_heroku.settings(locals()) 允许 iit 工作。
    【解决方案2】:

    我发现 django_heroku.settings(locals()) 覆盖了我的 collectstatic 命令,并且注释该行允许我的代码工作。由于某些原因,它总是会创建一个名为 staticfiles 的默认目录。

    【讨论】:

      猜你喜欢
      • 2015-01-02
      • 2013-01-03
      • 2018-09-19
      • 1970-01-01
      • 2012-08-02
      • 2019-10-11
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多