Tôi đang gặp vấn đề lạ và tôi không biết nguyên nhân gây ra nó. Dưới đây là cấu hình hiện tại của tôi (sử dụng Heroku
):Cung cấp các tập tin tĩnh và phương tiện của Django từ S3
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(PROJECT_DIR, '../static'),
)
#Determine if local or deployed.
if 'DATABASE_URL' in os.environ:
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'A...A'
AWS_SECRET_ACCESS_KEY = '...R'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
# PRODUCTION OR STAGING
if 'PROD' in os.environ:
AWS_STORAGE_BUCKET_NAME = 's3.project.com'
STATIC_URL = "https://s3.amazonaws.com/project/"
else:
AWS_STORAGE_BUCKET_NAME = 'project-staging'
STATIC_URL = "https://s3.amazonaws.com/project-staging/"
else:
STATIC_ROOT = ''
Vấn đề là, các file tĩnh đang làm việc tốt, các liên kết giống như thế này: https://s3.amazonaws.com/project-staging/img/homepage_left.png
.
Vấn đề đầu tiên (Quản trị nửa bị hỏng):
Quản trị viên đang hoạt động một nửa. file CSS được phục vụ tốt: https://project-staging.s3.amazonaws.com/admin/js/core.js?Signature=asdasdasd%3D&Expires=1352430664&AWSAccessKeyId=asdasdasA
nhưng tất cả những hình ảnh được chia:
https://project-staging.s3.amazonaws.com/admin?Signature=%2asdasdad%3D&Expires=1352430664&AWSAccessKeyId=asdasdaimg/icon_calendar.gif
Tôi không biết lý do tại sao Chữ ký và AWSAccesskey đang có :(Nếu tôi loại bỏ chúng (bằng tay) các công trình URL. tốt
vấn đề thứ hai (tải lên phương tiện truyền thông qua ImageField/FileField):
tôi đang sử dụng {{MEDIA_URL}}{{object.flyer}}
, nó dịch để /media/media/flyers/poster_1.png
, làm thế nào để trỏ nó ra S3 nó phải là như thế này:? https://project-staging.s3.amazonaws.com/media/flyers/poster_1.png