赞
踩
01-当Django处于DEBUG模式时,其与静态资源有关的三句设置语句才有作用,当没有处于DEBUG模式时,与静态资源有关的三句设置语句没有作用。与静态资源有关的三句设置语句如下:
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static_list')] # 注意这是一个列表,即可以有多个目录的路径
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
STATIC_URL = '/static-url/'
02-当Django没有处于Debug模式时,静态文件该由代理服务器(比如Nginx)直接提供,通常的做法是在Nginx中配置两个匹配静态文件的location块,比如下面的语句:
# 匹配图片类静态文件
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 30d;
error_log off;
access_log /dev/null;
}
# 匹配js,css等别的静态文件
location ~ .*\.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
}
03-当Django处于Debug模式时,当Django开启web服务后,如果STATIC_URL = '/static-url/'
则访问URL路径:http://hostname:端口号/static-url/
就相当于去访问Django目录中的静态文件。
那么由Django的哪个目录提供静态文件呢,此时又分为两种情况。
第一种情况:没有执行命令python manage.py collectstatic的情况,此时遍历目录的顺序请参考我之前写的博文https://blog.csdn.net/wenhao_ir/article/details/134493471【搜索“没有执行命令python manage.py collectstatic的情况”】
第二种情况:执行命令python manage.py collectstatic的情况,此时遍历目录的顺序也请参考我之前写的博文https://blog.csdn.net/wenhao_ir/article/details/134493471【搜索“当运行 python manage.py collectstatic 命令时”】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。