你可以做的是在環境此刻正在使用您的設置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回購部署。保重。 –