Django settings url.py工程级(而非应用级) STATIC_URL STATIC_ROOT STATICFILES_DIRS
uWSGI(uWSGI不同于uwsgi) static-map=/static/=
location /static {
}
static 来static去,为什么我的页面不能正确加载静态资源?1.Ngxin和uWSGI的配置文件是否写对了? 2.各个环节static是为谁服务的呢?面向哪个组件的呢?搞不清楚只能瞎猫逮死耗子!破烂的沿海城市!
- Nginx可以直接处理static文件请求而绕过真实的server,因为这是它的长处,即就是把url映射到文件路径,一般目录层级是相同的
- uWSGI也可以直接处理static文件 static-map=/static/=/path/to/uwsgi/static
- Django的settings中定义的特定名称变量,必定是有用的,所以参见文档,或者搜索关键字就是了。STATIC_URL即是你网站的static文件URL(为了在模板语言中使用),STATIC_ROOT即是static文件在你系统上的文件位置,
- 当你执行了
python manage.py collectstatics
,staticfiles(它是一个APP,你可以在INSTALLED_APPS里看到它)就会收集各处的静态文件到 STATIC_ROOT,‘各处’包含STATICFILES_DIRS(应用需要的额外静态文件目录)中的目录和各APP的static目录;
部署时静态文件的收集:https://docs.djangoproject.com/en/2.2/howto/static-files/#deployment - settings.py中STATIC_ROOT和STATIC_URL的解释:https://docs.djangoproject.com/en/2.2/ref/settings/#static-files
findstatic命令也会从STATICFILES_DIRS查找静态文件,findstatic是怎么找到静态文件的呢?同样的,settings里定义了STATICFILES_FINDERS;findstatic命令:https://docs.djangoproject.com/en/2.2/ref/contrib/staticfiles/#findstatic
STATICFILES_FINDERS的配置:https://docs.djangoproject.com/en/2.2/ref/settings/#staticfiles-finders
collecestatic命令:https://docs.djangoproject.com/en/2.2/ref/contrib/staticfiles/#collectstatic