0
的Python 3.5.2os.path.join - 如何應付絕對路徑
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
我想加入他們的行列:
STATIC_ROOT = os.path.join(PROJECT_PATH, STATIC_URL)
結果是 '/靜態/'。
這是文檔:「如果一個組件是一個絕對路徑,所有前面的組件被丟棄,並加入從絕對路徑部分繼續」 https://docs.python.org/3/library/os.path.html
我們可以讀到
在調試器中我的情況BASE_DIR是一個 '/ home /邁克爾/ PycharmProjects/photoarchive/photoarchive'。
那麼,這是一個絕對路徑。那麼,它通過abspath函數獲得了。
因此,有第一個組件 - BASE_DIR - 是絕對路徑。
你能告訴我爲什麼它被扔掉? 如何獲得'/ home/michael/PycharmProjects/photoarchive/photoarchive/static'?
這是最好的,但沒有必要放棄'/''從靜態/'爲[跨平臺兼容性(http://stackoverflow.com/questions/16333569/mixed-slashes-with-os-路徑加入在窗口) –
@loa_in_:是的。 'os.path.normpath'就是這樣。 –