Django静态文件正确配置及static与staticfiles重复问题咨询
问题根源解释
- 你之前误将
STATIC_ROOT指向自定义的static目录,才会出现执行collectstatic后该目录下多出admin静态资源的情况,这是Django的正常机制:collectstatic会自动汇总所有可识别的静态资源(包括Django自带admin、第三方应用、你存放在自定义目录的资源)到STATIC_ROOT指定的目录,方便生产环境直接用web服务器托管该目录。 - 你当前的配置完全符合官方规范,
static和staticfiles两个目录同时存在属于预期状态:static是开发阶段存放你自定义静态资源的工作目录,所有自行编写的CSS、JS、图片等文件都存放在这里staticfiles是collectstatic命令的自动输出目录,不需要手动修改其中内容,仅用于生产环境部署使用
无风险修正操作
- 直接删除自定义
static目录下自动生成的admin文件夹,这个是之前错误配置遗留的冗余文件,不会影响项目正常运行 - 本地开发阶段不需要频繁执行
collectstatic命令,runserver会自动从STATICFILES_DIRS和各应用的static目录查找静态资源,只有上线部署前才需要执行该命令生成staticfiles目录 - 如果不需要版本管理自动生成的汇总文件,可以在
.gitignore中添加staticfiles/条目,避免该目录被提交到代码仓库
功能验证方法
执行collectstatic生成staticfiles目录后,手动删除该目录再启动runserver访问站点,所有静态资源可正常加载,即证明你自定义的静态资源都存放在正确的static工作目录中。
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

