Django配置STATICFILES_DIRS报非元组/列表错误如何解决?
问题根因
- 你在配置文件中重复定义了
STATICFILES_DIRS,后面的赋值会覆盖前面正确的列表格式配置,实际生效的是后一段用圆括号包裹的配置 - 后一段配置中,你使用圆括号包裹单个元素但没有加尾部逗号:Python 语法规定,单个元素的元组必须在末尾加逗号,否则括号会被识别为普通优先级运算符,最终
STATICFILES_DIRS的取值是os.path.join返回的字符串类型,不符合 Django 要求的「列表/元组」类型要求,因此触发报错。
修复方案
二选一即可,不要重复配置:
- 直接保留列表格式的配置,删除后一段重复的
STATICFILES_DIRS赋值:
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]
- 如果要使用元组格式,补充尾部逗号,同时按需修正静态目录名称即可:
STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), )
如果需要配置多个静态目录,按对应格式追加条目即可,列表格式无需额外注意末尾逗号,元组格式单元素时必须保留末尾逗号。
内容的提问来源于stack exchange,提问作者Kaushik
相关产品推荐
相关产品推荐

