在開發中,STATIC_ROOT 實際上是無用的,因為自動從以下位置提供靜態檔案每個應用程式的目錄。在部署過程中,STATIC_ROOT對於Nginx定位和提供靜態內容至關重要。
STATIC_ROOT指定在運行manage.pycollectstatic後Django將收集和輸出所有靜態檔案的位置。該位置應該可以由為您的網站提供服務的 Web 伺服器(例如 Nginx)存取。
STATICFILES_DIRS 是一個可選設置,允許您包含附加目錄以供 Collectstatic 搜尋對於靜態檔案。如果您在預設應用程式目錄之外有靜態文件,這非常有用。
根據您提供的程式碼,您最初遇到問題是因為 JS 檔案是在 STATIC_ROOT 指定的位置找不到。這是因為 admin.py 在 STATICFILES_DIRS 的 admin/ 子目錄中尋找文件,而不是 STATIC_ROOT。
透過變更為 STATICFILES_DIRS,您能夠解決此問題,因為它包含 JS 檔案所在的路徑。
Setting | Purpose | Deployment |
---|---|---|
STATIC_FILES_DIR | Additional directories for static files | n/a |
STATIC_ROOT | Location where static files are collected | Required |
MEDIA_ROOT | Location for user-uploaded files | n/a |
以上是以下是一些標題選項,強調問題格式: * **STATIC_FILES_DIR、STATIC_ROOT 和 MEDIA_ROOT:有什麼區別以及何時使用它們? * **Django 部署:為什麼是 STATI的詳細內容。更多資訊請關注PHP中文網其他相關文章!