Django 德扬戈。在本地和;远程静态文件
在收集我的静态文件并将其存储在Amazon Bucket(AWS S3)中之后,当我在本地运行项目时,它仍然使用在线存储的静态文件,这是一个问题原因。当我想更改ex的css文件时,我必须运行collectstatic或手动将文件上载到Amazon。我尝试添加一个新的设置变量“LOCAL_STATICFILES”,如下所示: 设置.pyDjango 德扬戈。在本地和;远程静态文件,django,django-staticfiles,Django,Django Staticfiles,在收集我的静态文件并将其存储在Amazon Bucket(AWS S3)中之后,当我在本地运行项目时,它仍然使用在线存储的静态文件,这是一个问题原因。当我想更改ex的css文件时,我必须运行collectstatic或手动将文件上载到Amazon。我尝试添加一个新的设置变量“LOCAL_STATICFILES”,如下所示: 设置.py LOCAL_STATICFILES = False if not LOCAL_STATICFILES: DEFAULT_FILE_STORAGE = 's
LOCAL_STATICFILES = False
if not LOCAL_STATICFILES:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = os.environ['AWSAccessKeyId']
AWS_SECRET_ACCESS_KEY = os.environ['AWSSecretKey']
AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME']
S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = S3_URL
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
if LOCAL_STATICFILES:
STATIC_URL = '/static/'
STATIC_ROOT = '/'
但当我将本地_staticfile转换为True并运行服务器时,django找不到它们
项目的文件夹如下所示:
- 计划
- 应用程序
- 应用程序
- 静止的
- css
- js
- img
- 模板
我做错了什么?首先:确保有办法区分您是否处于支持Amazon bucket配置的环境中。这意味着,通常这将是您的生产环境,您已经在其中配置了amazon bucket设置 因此,你将:
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# this is the base project path
if 'AWSAccessKeyId' in os.environ:
# assume the presence of this key will determine whether
# we are, or not, in the bucket-supporting environment
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = os.environ['AWSAccessKeyId']
AWS_SECRET_ACCESS_KEY = os.environ['AWSSecretKey']
AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME']
STATIC_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
# static url will be the re
STATIC_ROOT = None
# STATIC_ROOT doesn't matter since you will not invoke
# `manage.py collectstatic` from this environment. You
# can safely let it to None, or anything like:
# os.path.join(BASE_DIR, 'static')
else:
STATIC_URL = '/static/'
# the static files url will point to your local,
# development, server
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# here, STATIC_ROOT matters, since you will invoke
# `manage.py collectstatic` from your local environment.