想把以前的一个asp.net网站移植到django上,发现django对静态资源似乎支持的不好,不能直接根据相对路径查找,要做一些配置,找了很多解决方案,整理如下:
1、django对静态资源的配置是跟版本有关的!!!切记!!!1.3以前的和以后的配置不太一样!!!下面仅针对Django1.9;
2、settings.py中的installed apps 要包含'django.contrib.staticfiles';
3、settings.py中的STATIC_URL就是app目录下的静态文件所在文件夹的相对路径,默认为/static/,可以自定义;
4、调用时用如下形式:
{% load static %}
导入js,img等静态文件后报错:
File "D:\Python27\lib\mimetypes.py", line 249, in enum_types
ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(128)
[27/Dec/2015 15:26:32] "GET /static/assets/img/nextPage_small_grey.jpg HTTP/1.1" 500 59
找到关键报错文件mimetypes.py,百度了一下,找到了解决方案:在Python安装目录下的lib/site-packages中添加一个文件sitecustomize.py,内容为
import sys
sys.setdefaultencoding("cp1251")
我设置的编码格式为utf-8,不知道其他格式是否也可以。重启运行,成功。