Django执行collectstatic读取路径错误,无法复制自定义静态文件
问题根源
你的settings.py中静态文件配置的变量名写错了,Django 用于指定额外静态文件查找目录的配置项是复数形式的STATICFILES_DIRS,你误写为单数的STATICFILES_DIR,Django 无法识别这个自定义配置,只会读取默认的静态文件路径(也就是你返回的虚拟环境中 admin 应用的静态目录),因此不会扫描你项目根目录下的static文件夹。
解决步骤
- 修正
settings.py中的静态文件配置,首先确认文件顶部已经导入了os模块,再替换原有静态配置为以下内容:
STATIC_URL = '/static/' # 变量名末尾加S,改为复数STATICFILES_DIRS STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ] STATIC_ROOT = os.path.join(BASE_DIR,'assets')
- 确认
settings.py的INSTALLED_APPS列表中存在django.contrib.staticfiles(Django默认自带,如无特殊修改无需额外添加)。 - 重新执行静态文件收集命令:
python manage.py collectstatic
执行后根据提示输入yes确认,即可将你static文件夹内的所有文件同步到assets目录。
补充说明
开发环境下如果DEBUG = True,无需执行collectstatic命令,Django会自动从STATICFILES_DIRS指定的目录查找静态文件,直接启动服务即可正常加载css、js等资源。
内容的提问来源于stack exchange,提问作者Jass
相关产品推荐
相关产品推荐

