问题描述
我已经开发了Django项目,并尝试使用python-decouple管理不同的配置(开发和生产)和.env。
在我的项目架构和其他配置文件下面。
也许我误会了,但出于理解:
- 我有从我的“基本” settings.py继承的settings.py文件(dev和prod)
- 某些变量必须保密:这些变量存储在不会共享(.gitignore)的.env文件中
- 在生产中,这些秘密变量是从设置文件中的.env读取的
我跑步
python manage.py migrate --settings=core.settings.dev
python manage.py runserver --settings=core.settings.dev
出现错误
FileNotFoundError:[WinError 3]找不到指定的路径:'D:\ Users \ xx \ DevSpace \ PROJECT_FOLDER \ core \ static'
没错,因为静态文件夹与核心应用程序处于同一级别。但是如何配置此路径?
- PROJECT_FOLDER
|_ core
|_ wsqi.py
|_ settings
|_ __init__.py
|_ .env
|_ base.py
|_ dev.py
|_ prod.py
|_ manage.py
|_ static
|_ css
|_ images
|_ db.sqlite3
.env
SECRET_KEY=rqps9azjw7i0@_(qxirwr!@0w3f)$prsky9l7bt8t-(y)_tiuj
base.py
from decouple import config
STATIC_URL = '/static/'
STATICFILES_Dirs = (
os.path.join(BASE_DIR,'static'),os.path.join(BASE_DIR,'randomization/static'),'unblind/static'),'pharmacy/static'),)
dev.py
from .base import *
SECRET_KEY = 'f!hap7sff#f@8$1iix@(%d4f=88swwetxkhbq=%^x)ga2eowbs'
DEBUG = True
prod.py
from .base import *
SECRET_KEY = config("SECRET_KEY",default="unsafe-secret-key")
DEBUG = False
解决方法
添加STATIC_ROOT配置:
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR),'static')