如果你的静态资源是某个APP专属,那么就在这个APP目录下建立一个static目录,就像上图report这个APP中的static目录。当浏览这个APP的网页时它会从这里去找资源,当然,它首先会从共用静态资源目录里去找我这里是commonstatic目录。如果找不到就去APP的static目录找。
关于STATIC_URL的说明:这个就是表示访问静态资源的URL是啥,这里定义的是/static/,其实你改成/statics/也是一样的或者直接指定一个具体的ULR比如https://static.xxx.com/。
关于STATIC_ROOT这个东西的说明:
这个目录名字也可以自定义但是要和配置中的名称一致。这个目录里面的东西不是你放进去的,而是运行collectstatic命令(python manage.py collectstatic)它自动收集进去的,它会把各个APP下面的static和共用static都收集进去,这个目录的作用是干嘛的呢?就是在有反向代理的时候用到,通过Nginx访问,你的URL是http://xxx.xxx.xxx/static/js/xxx.js这个它访问的是/static/这个location,那么通过Nginx你可以设置这样一个location,然后对应到实际的磁盘路径。
collectstatic命令:它会把在STATICFILES_DIRS里定义的以及APP里面的static目录里的静态文件收集到STATIC_ROOT指定的 目录里。
资源查找顺序:
这里是Django的查找顺序,你部署Nginx代理属于另外的情况。
Django的查找顺序是先从公共目录里也就是STATICFILES_DIRS里面找,然后再去APP下面的static目录找。你要不信可以做个实验资源名相同但是内容不同你看看先找哪一个。
资源如何访问: