我已經成功地將我的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-storage(boto)框架來協助對S3進行靜態文件管理。儘管本地設置使用遠程靜態文件的Django本地版本
我在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文件?