【问题标题】:Django separate settings and .env files (python-decouple): the specified path was not found for static filesDjango 单独设置和 .env 文件(python-decouple):找不到静态文件的指定路径
【发布时间】:2021-01-09 18:34:56
【问题描述】:

我开发了一个 Django 项目并尝试使用 python-decouple 管理不同的配置(开发和产品)和 .env。

下面是我的项目架构和不同的配置文件。

也许我误解了,但在我的理解中:

  1. 我有不同的 settings.py 文件(dev 和 prod)从我的“基础”settings.py 继承
  2. 某些变量必须保密:这些变量存储在 .env 文件中,不会被共享 (.gitignore)
  3. 在生产中,这些秘密变量是从设置文件中的 .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'),
    os.path.join(BASE_DIR,'unblind/static'),
    os.path.join(BASE_DIR,'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

【问题讨论】:

    标签: python django django-settings python-decouple


    【解决方案1】:

    添加一个 STATIC_ROOT 配置:

    STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static')
    

    【讨论】:

      猜你喜欢
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 2014-08-15
      相关资源
      最近更新 更多