微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django单独的设置和.env文件python解耦:找不到静态文件的指定路径

如何解决Django单独的设置和.env文件python解耦:找不到静态文件的指定路径

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

在我的项目架构和其他配置文件下面。

也许我误会了,但出于理解:

  1. 我有从我的“基本” settings.py继承的settings.py文件(dev和prod)
  2. 某些变量必须保密:这些变量存储在不会共享(.gitignore)的.env文件
  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'),'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')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。