Python 3.5.2
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
我想加入他们:
STATIC_ROOT = os.path.join(PROJECT_PATH, STATIC_URL)
结果是'/ static /'。
这是文档: https://docs.python.org/3/library/os.path.html
我们可以读到“如果组件是绝对路径,则抛弃所有先前的组件,并从绝对路径组件继续连接。”
在我的情况下,调试器中的BASE_DIR是'/ home / michael / PycharmProjects / photoarchive / photoarchive'。
嗯,这是一条绝对的道路。好吧,它是通过abspath函数获得的。
因此,第一个组件 - BASE_DIR - 是一个绝对路径。
你能告诉我为什么它会被扔掉吗? 以及如何获得'/ home / michael / PycharmProjects / photoarchive / photoarchive / static'?
答案 0 :(得分:3)
“如果组件是绝对路径,则抛弃所有先前的组件,并从绝对路径组件继续连接。”适用于此处:STATIC_URL
是绝对路径,因为它以/
开头,因此会删除BASE_DIR
。
删除前导/
其他dirname认为STATIC_URL
是绝对的,只保留该值。
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = 'static/'