Django对静态文件的处理——部署阶段
参考:http://blog.makto.me/post/2012-11-09/static-files-in-django-deployment
HTML模板中的用法:
{% load staticfiles %} <img src="{% static "images/hi.jpg" %}" />
下面来总结下上面提到过的 settings.py 中的设置项:
-
STATIC_ROOT:执行 ./manage.py collectstatic 后,所有静态文件就会被收集到这个文件夹下;
-
STATIC_URL:静态文件的 URL 前缀,供类似 static,get_static_prefix 等模板标签使用;
-
STATICFILES_DIRS:除 每个应用目录下的 static/ 目录外,其他静态文件可能存放的目录;
-
STATICFILES_FINDERS:告诉 collectstatic 命令都需要去哪儿找静态文件,以及寻找的顺序,有点儿类似 TEMPLATE_LOADERS;
-
STATICFILES_STORAGE:collectstatic 命令所使用的存储引擎,默认情况下不用修改,使用内置的 StaticFilesStorage 即可。如果要使用 CDN 或云服务来提供静态资源,可以编写相应的存储引擎并替换即可。
-
INSTALLED_APPS:要使用上面这些功能,就要在这里开启 django.contrib.staticfiles 这个应用;另外,只有在这里出现的应用才会被 collectstatic 搜集到。
还有两个相关的设置项:
-
MEDIA_ROOT:用来存放用户上传文件的目录。
-
MEDIA_URL:用户上传文件的 URL 前缀。