你可以做的是在环境此刻正在使用您的设置PY检查。 为此,您可以在系统上设置一个环境变量,该环境变量在开发环境和生产环境中具有不同的值。
您可以通过
sudo -H gedit /etc/environment
设置这些环境变量,并添加以下行的文件中:
DEBUG="true"
(使这种改变提供你将不得不注销并重新登录在进入你的系统)
在生产环境
那么您需要设置调试=“假”。
那么您可以在您的settings.py做到这一点:
DEBUG = os.environ.get('DEBUG', 'true') != 'false'
,然后你可以设置每个设置,将取决于这样使用环境有所不同:
if DEBUG:
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
else:
STATICFILES_STORAGE = STATICFILES_STORAGE = 'custom_storages.StaticStorage'
(中如果设置在开发环境中,则使用本地django服务器为静态文件提供服务;如果在生产环境中(在custom_storages模块中定义),则使用boto amazon s3 0123推动你的更新,并始终根据环境选择正确的设置。
我会建议你避免多重设置文件,而是使用[Django的ENVIRON(https://github.com/joke2k/django-environ)来处理不断变化的设置环境变量。结帐[12-factor-app](https://12factor.net) –
感谢Gustavo的回复。你的建议确实很诱人。然而,我有要求和应用程序,我不想在生产(测试应用程序,文档生成器等)的东西。直到我找出一个更清晰的解决方案,现在我会保留我的settings.local.py版本控制,并始终从生产准备git回购部署。保重。 –