【问题标题】:Django collectstatic not pushing to AWS S3Django collectstatic 未推送到 AWS S3
【发布时间】:2015-01-02 07:37:33
【问题描述】:

我无法使用 django 'collectstatic' 将本地文件推送到亚马逊 S3。

我的 settings.py,所有可能相关的设置:

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
INSTALLED_APPS += ('storages',)
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = os.environ['AWSAccessKeyId']
AWS_SECRET_ACCESS_KEY = os.environ['AWSSecretKey']
AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME']
S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = S3_URL
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),)
STATIC_ROOT = 'staticfiles'

如果我使用这些设置运行 collectsatic,我会收到错误:

0 static files copied, 139 unmodified.

如果我将 STATIC_ROOT 更改为“/”(考虑到 Amazon Bucket 中的文件夹分布,这就是我想要的样子),我会收到错误消息:

OSError: [Errno 13] Permission denied: '/css'

请帮忙,我的想法已经用完了。我已经仔细检查了凭据,还尝试从 heroku 运行它。

heroku run python manage.py collectstatic

同样的错误。

【问题讨论】:

    标签: django heroku amazon-web-services amazon-s3


    【解决方案1】:

    根据docs,你需要添加

    STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
    

    到您的设置文件。

    【讨论】:

    • 我不敢相信我错过了这么明显的东西。然而,这很奇怪,因为它在一个月前的第一次部署中工作。无论如何,谢谢。
    猜你喜欢
    • 2021-05-03
    • 2013-01-03
    • 2018-09-19
    • 1970-01-01
    • 2014-11-26
    • 2012-08-02
    • 2020-05-01
    • 2017-05-02
    • 2013-08-01
    相关资源
    最近更新 更多