3

晚安伙计们,我正在尝试在 Heroku 上使用 django 设置一个应用程序,使用 S3 作为我的 javascript 和样式表的服务器。在一些帖子之后,我在 S3 上配置了一个存储桶,并将我的环境变量配置到 heroku 中。然后在我的设置文件中我有这样的东西

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',        
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'apuh',
    'storages',
)

AWS_QUERYSTRING_AUTH = False
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = 'mybucket'

STATIC_URL = 'https://s3.amazonaws.com/%s/' % AWS_STORAGE_BUCKET_NAME ADMIN_MEDIA_PREFIX = '/static/admin/'

当我运行我的应用程序时,它会因以下错误而崩溃:

Error: No module named storages

我用 pip install django_storages 安装了 django_storages。它安装在我的环境中。如果我评论“存储”行,它不会从存储桶中加载任何文件,我猜该请求不会发送用于身份验证的属性令牌。

所以,我的问题是,我做错了什么。我已经检查了问题和问题,但看起来我错过了一些大事。

提前致谢

4

1 回答 1

3

也许添加这些会有所帮助?

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

STATIC_URL = 'http://' + AWS_STORAGE_BUCKET_NAME + '.s3.amazonaws.com/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'

是的,也安装了 boto

然后运行 ​​pip freeze > requirements.txt 以确保您的所有依赖项都是最新的

我希望它有帮助

于 2012-10-10T07:30:21.777 回答