BASE_DIR 返回设置路径而不是项目路径 (django 1.10)
BASE_DIR returning settings path and not project path (django 1.10)
我目前正在根据 Django 1.8 首选设置文件设置的两勺设置 Django 1.10 的设置文件。
我的 base.py 设置文件是:
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_DIR 是 return 以下路径:
/Devs/projects/captain_log/src/cap_log
我的文件树:
|--Virtual Env Folder
|--src(django project)/
|--cap_log(django config)/
|--init.py
|--urls.py
|--wsgi.py
|--settings/
|-- init.py
|-- base.py (all settings located here)
|-- development.py
|-- production.py
|-- etc.
我假设 BASE_DIR 应该 return:
/Devs/projects/captain_log/src/
我问是因为我的 STATIC_DIRS 也在 returning:
/Devs/projects/captain_log/src/cap_log/static
而不是:
/Devs/projects/captain_log/src/static
有人可以建议解决方案或更正我正在做的事情。
它还会影响模板路径、collectstatic、媒体路径等。
再试一次dirname
呼叫
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
第一个 dirname 给你设置,第二个给你 config 文件夹,第三个把你放在父目录中
__file__ # is the current file location
os.path.abspath(__file__) # locates you on the file structure
os.path.dirname(os.path.abspath(__file__)) # gives you the directory of the file at the supplied filepath
默认假设您使用的是 settings.py
文件而不是目录,因此您在原始配置中是一个较浅的目录
我目前正在根据 Django 1.8 首选设置文件设置的两勺设置 Django 1.10 的设置文件。
我的 base.py 设置文件是:
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_DIR 是 return 以下路径:
/Devs/projects/captain_log/src/cap_log
我的文件树:
|--Virtual Env Folder
|--src(django project)/
|--cap_log(django config)/
|--init.py
|--urls.py
|--wsgi.py
|--settings/
|-- init.py
|-- base.py (all settings located here)
|-- development.py
|-- production.py
|-- etc.
我假设 BASE_DIR 应该 return:
/Devs/projects/captain_log/src/
我问是因为我的 STATIC_DIRS 也在 returning:
/Devs/projects/captain_log/src/cap_log/static
而不是:
/Devs/projects/captain_log/src/static
有人可以建议解决方案或更正我正在做的事情。 它还会影响模板路径、collectstatic、媒体路径等。
再试一次dirname
呼叫
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
第一个 dirname 给你设置,第二个给你 config 文件夹,第三个把你放在父目录中
__file__ # is the current file location
os.path.abspath(__file__) # locates you on the file structure
os.path.dirname(os.path.abspath(__file__)) # gives you the directory of the file at the supplied filepath
默认假设您使用的是 settings.py
文件而不是目录,因此您在原始配置中是一个较浅的目录