如何修改Django静态文件目录?能否将static移至app目录外?
静态文件夹移至App目录外的可行性及配置方法
完全可行,这也是多App项目中共享静态资源、避免重复依赖文件占用体积的常用方案,按以下步骤配置即可:
- 在项目根目录创建
static文件夹,也就是你想要的结构:| project | | app | | static - 打开项目根目录下的
settings.py文件,找到STATICFILES_DIRS配置项(如果没有就新增),添加根目录下的static路径:
注:STATICFILES_DIRS = [ BASE_DIR / "static", ]BASE_DIR是Django默认定义的项目根目录路径常量,这样配置就能准确指向project/static文件夹。 - 保持
STATIC_URL的默认配置(通常是'/static/')不变,模板中引用静态资源的方式也无需修改,比如:{% static 'js/jquery.min.js' %} {% static 'css/bootstrap.css' %} - 部署项目时,执行
python manage.py collectstatic命令,Django会自动将所有App内的静态资源和根目录static里的文件统一收集到STATIC_ROOT指定的目录中,满足生产环境的静态资源托管需求。
这种结构的优势很明显:可以把共用的JS/CSS库统一放在根目录的static里,不用在每个App的static下重复存放,既节省存储空间,也方便统一管理依赖资源。
内容的提问来源于stack exchange,提问作者burak
相关产品推荐
相关产品推荐

