Django separate settings and .env files (python-decouple): 找不到静态文件的指定路径
Django separate settings and .env files (python-decouple): the specified path was not found for static files
我开发了一个 Django 项目并尝试使用 python-decouple 管理不同的配置(开发和生产)和 .env。
下面是我的项目架构和不同的配置文件。
也许我理解有误,但在我的理解中:
- 我有不同的 settings.py 文件(开发和生产)继承自我的“基础”settings.py
- 一些变量必须保密:这些变量存储在不会共享的 .env 文件中 (.gitignore)
- 在生产中,这些秘密变量是从设置文件中的 .env 中读取的
我运行
python manage.py migrate --settings=core.settings.dev
python manage.py runserver --settings=core.settings.dev
出现错误
FileNotFoundError: [WinError 3] The specified path was not found: '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'),
os.path.join(BASE_DIR,'unblind/static'),
os.path.join(BASE_DIR,'pharmacy/static'),
)
dev.py
from .base import *
SECRET_KEY = 'f!hap7sff#f@8iix@(%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')
我开发了一个 Django 项目并尝试使用 python-decouple 管理不同的配置(开发和生产)和 .env。
下面是我的项目架构和不同的配置文件。
也许我理解有误,但在我的理解中:
- 我有不同的 settings.py 文件(开发和生产)继承自我的“基础”settings.py
- 一些变量必须保密:这些变量存储在不会共享的 .env 文件中 (.gitignore)
- 在生产中,这些秘密变量是从设置文件中的 .env 中读取的
我运行
python manage.py migrate --settings=core.settings.dev
python manage.py runserver --settings=core.settings.dev
出现错误
FileNotFoundError: [WinError 3] The specified path was not found: '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'),
os.path.join(BASE_DIR,'unblind/static'),
os.path.join(BASE_DIR,'pharmacy/static'),
)
dev.py
from .base import *
SECRET_KEY = 'f!hap7sff#f@8iix@(%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')