执行python manage.py collectstatic时出现FileNotFoundError问题求助
解决
collectstatic抛出的FileNotFoundError问题 嘿,我一眼就揪出问题所在了——你的STATICFILES_DIRS配置指向的路径根本不存在!
先帮你理清楚关键逻辑:Django里的BASE_DIR是manage.py所在的项目根目录(也就是/Users/me/Desktop/Django/),你配置的os.path.join(BASE_DIR, "static")会解析成/Users/me/Desktop/Django/static,但从你的目录树能明显看到,项目根目录下并没有这个文件夹,只有forum应用目录下才有static文件夹。
给你两个针对性的解决方案,看你的实际需求选:
方案1:修改STATICFILES_DIRS指向forum应用的静态文件夹
如果你是想把forum应用里的静态文件作为全局静态资源管理,直接修改settings.py的配置:
import os from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, "forum", "static"), )
方案2:在项目根目录创建全局static文件夹
如果你原本就打算在项目根目录存放通用静态资源(比如全局CSS、JS文件),直接在根目录新建文件夹即可:
mkdir /Users/me/Desktop/Django/static
执行完这条命令后,你原来的STATICFILES_DIRS配置就能正常工作了。
额外小提醒
Django的collectstatic命令默认会自动收集所有INSTALLED_APPS中应用下的static文件夹内容,所以你的forums应用里的静态文件不需要额外加到STATICFILES_DIRS里,执行命令时会被自动收集。
内容的提问来源于stack exchange,提问作者Wizard
相关产品推荐
相关产品推荐

