我已经成功地将我的 Django 应用程序部署到 AWS Elastic Beanstalk(使用 eb)。我已按照此处列出的步骤http://www.youtube.com/watch?v=YJoOnKiSYws和此处http://grigory.ca/2012/09/getting-started-with-django-on-aws-elastic -beanstalk/并且正在使用 django-storages (boto) 框架来协助对 S3 进行静态文件管理。
我的 SETTINGS.PY 中有以下设置:
STATIC_ROOT = os.path.join(
os.path.dirname(
os.path.dirname(
os.path.abspath(__file__))), 'static')
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'access-key'
AWS_SECRET_ACCESS_KEY = 'secret-key'
AWS_STORAGE_BUCKET_NAME = 'bucket-name'
STATIC_URL = '/static/'
STATICFILES_DIRS = ()
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
.
.
.
try:
from local_settings import *
except ImportError, e:
pass
我的 LOCAL_SETTINGS.PY 有以下内容:
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
('js', '/blah/blah/static/js'),
('css', '/blah/blah/static/css'),
('images', '/blah/blah/static/images'),
)
在我的模板中,我使用:
{% load staticfiles %}
<link href="{% static "css/styles.css" %}" rel="stylesheet">
问题是,当我在本地运行应用程序时,它会引用我在 S3 中的静态文件,而不是在我的本地目录中。我需要更改哪些设置,以便在本地运行应用程序时使用本地静态文件,而在 AWS 上运行时使用 S3 文件?