这个问题涉及使用Heroku,django-storages(w/boto for s3)和CloudFront来提供静态内容的设置.
在过去的几个小时里,我一直在努力将我的静态文件成功加载到我的Heroku应用程序中.我已成功将Cloudfront连接到我的s3存储桶,看起来好像存储桶设置正确,但无论出于何种原因,我的值AWS_STORAGE_BUCKET_NAME似乎都没有正确注册.
如果有人对如何调试这个有任何线索或想法,我会非常感激.我没办法.谢谢阅读.
settings.py(重要的东西):
try:
from settings_local import *
except:
import s3utils
DEBUG = False
#s3 stuff
DEFAULT_FILE_STORAGE = 's3utils.MediaRootS3BotoStorage'
STATICFILES_STORAGE = 's3utils.StaticRootS3BotoStorage'
STATIC_URL = 'https://[domain].cloudfront.net/'
#use heroku postgres database
import dj_database_url
DATABASES['default'] = dj_database_url.config()
Run Code Online (Sandbox Code Playgroud)
s3utils.py
from storages.backends.s3boto import S3BotoStorage
from django.utils.functional import SimpleLazyObject
import os
AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY_ID']
AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_ACCESS_KEY']
AWS_STORAGE_BUCKET_NAME = 'static.[website].org'
StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static')
MediaRootS3BotoStorage = lambda: S3BotoStorage(location='media')
Run Code Online (Sandbox Code Playgroud)
这是我尝试通过'heroku run'或Procfile中尝试collectstatic时获得的回溯:
Traceback (most recent call last):
File "manage.py", line 10, in <module> …Run Code Online (Sandbox Code Playgroud)