软件环境:django 1.10.2, python2.7
问题:django中配置静态资源时遇到了错误提示 ordinal not in range(128),然后所有静态资源都不能正常访问,直接返回状态码500
项目目录结构:
其中statics目录里存放了项目的所有静态资源
解决方法:
- 确保setting.py中的INSTALL_APPS中包含django.contrib.staticfiles
- 确保setting.py中的DEBUG选项为True,否则无法映射到静态文件目录
- 设置setting.py
-
STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'statics/'), ]
-
修改mimetypes.py文件
-
#方法一:在文件头部添加代码 reload(sys) sys.setdefaultencoding('gb18030')#这里需要注意,就算代码文件编码是utf-8,这里的值也要为gb18030 #方法二:注释或删除以下四行代码(大概在252) try: ctype = ctype.encode(default_encoding) # omit in 3.x! except UnicodeEncodeError: pass
-
修改html文件中对静态资源的应用路径,以 /static/开头(与setting.py文件中STATIC_URL变量值一样),例如:
-
<link href="/static/css/bootstrap.min.css" rel="stylesheet"> <script src="/static/js/jquery.min.js"></script>
至此问题成功解决!