gpt4 book ai didi

django - 从 S3 提供 Django 的静态和媒体文件

转载 作者:行者123 更新时间:2023-12-04 16:11:40 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,我不知道是什么原因造成的。这是我当前的配置(使用 Heroku ):

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 = ''

问题是,静态文件工作正常,链接如下所示: https://s3.amazonaws.com/project-staging/img/homepage_left.png .

第一个问题(管理员半坏):

管理员工作了一半。 CSS 文件可以正常提供: https://project-staging.s3.amazonaws.com/admin/js/core.js?Signature=asdasdasd%3D&Expires=1352430664&AWSAccessKeyId=asdasdasA但所有的图像都坏了:
https://project-staging.s3.amazonaws.com/admin?Signature=%2asdasdad%3D&Expires=1352430664&AWSAccessKeyId=asdasdaimg/icon_calendar.gif
我不知道为什么 Signature 和 AWSAccesskey 在那里:(。如果我(手动)删除它们,URL 工作正常!

第二个问题(通过 ImageField/FileField 上传媒体):

我正在使用 {{MEDIA_URL}}{{object.flyer}} ,它转换为 /media/media/flyers/poster_1.png ,我如何将其指出给 s3?应该是这样的: https://project-staging.s3.amazonaws.com/media/flyers/poster_1.png

最佳答案

回答你的第二个问题:你需要设置MEDIA_URL = https://project-staging.s3.amazonaws.com/media/就像您为 STATIC_URL 所做的那样

关于django - 从 S3 提供 Django 的静态和媒体文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13301200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com