我正在使用 cookiecutter-django .env 设计根据环境加载不同的设置。在本地运行应该使用“local.py”设置并在 aws elatic beanstalk 中运行,它应该加载“dev.py”。两者都从“common.py”导入。
使用开发设置在 AES 中运行服务器有效,但 collectstatic 失败,因为它尝试导入本地设置而不是开发设置。
EC2 实例如何运行 collectstatic 并加载(适当的)dev.py 设置?
我正在使用 cookiecutter-django .env 设计根据环境加载不同的设置。在本地运行应该使用“local.py”设置并在 aws elatic beanstalk 中运行,它应该加载“dev.py”。两者都从“common.py”导入。
使用开发设置在 AES 中运行服务器有效,但 collectstatic 失败,因为它尝试导入本地设置而不是开发设置。
EC2 实例如何运行 collectstatic 并加载(适当的)dev.py 设置?
好的,找到了。manage.py 文件看起来像这样
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.local')
强制所有命令使用本地设置运行,而不是从 .env 文件加载。
我已将其更改为
import environ
ROOT_DIR = environ.Path(__file__) - 1
env = environ.Env()
env.read_env(ROOT_DIR.file('config/settings/.env'))
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', env('DJANGO_SETTINGS_MODULE', default='config.settings.local'))
它允许 manage.py 命令使用我实际指定的任何设置运行。