【发布时间】:2016-04-02 00:04:42
【问题描述】:
我有一个已完成的 Django 应用程序,我正在尝试使用 Heroku 和 S3 将其推送到生产环境,但我遇到了一些困惑。
到目前为止,我已经使用 git 将项目推送到 Heroku,我已经将我的 Postgres 数据库推送到 HerokuPostgres 并且正在运行,并且我已经将我的静态文件(包括 css 和图像)上传到了 S3。
目前,当您转到 Heroku 应用程序 (https://foobar.herokuapp.com/) 时,页面加载,css 工作,数据库工作。但是,静态图像没有显示出来。为什么会这样?
以下是我的 settings.py
中的几行DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '###',
'USER': '###',
'PASSWORD': '###',
'HOST': '###',
'PORT': '###',
}
}
DATABASES = {'default': dj_database_url.config(default='postgres://foobar')}
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
# MEDIA_ROOT = '/home/joe/Documents/exchange/Texchange/textchange/media/'
MEDIA_URL = '/media/'
# STATIC_ROOT = '/home/joe/Documents/exchange/Texchange/textchange/static/'
# STATIC_URL = '/static/'
AWS_STORAGE_BUCKET_NAME = 'bucketname'
AWS_ACCESS_KEY_ID = 'foobar'
AWS_SECRET_ACCESS_KEY = 'foobar'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = "https://%s/" % AWS_S3_CUSTOM_DOMAIN
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
我只是在寻找一些关于为什么图像没有显示的指导。
注意:用户上传的图片正在上传到 S3 并显示在网站上,但我的静态图片仍然没有显示。上传的图片怎么能正常工作,而其他静态图片却不行?
【问题讨论】:
-
确保您的 STATIC_URL 指向您的 S3 地址。
-
确实如此。我知道这一点是因为我的 css 文件工作正常,并且它们位于同一个文件夹中。