解决Django1.6访问static内容编码错误的办法

今天用Django搭建一个环境,在访问后台的时候感觉有点怪:

感觉后台页面的样式似乎没有被加载进来,于是单独打开某个样式结果浏览器提示:

A server error occurred.  Please contact the administrator.

命令行:

Traceback (most recent call last):
  File "D:Python27libwsgirefhandlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "D:Python27libsite-packagesdjangocontribstaticfileshandlers.py", line 68, in __call__
    return super(StaticFilesHandler, self).__call__(environ, start_response)
  File "D:Python27libsite-packagesdjangocorehandlerswsgi.py", line 206, in __call__
    response = self.get_response(request)
  File "D:Python27libsite-packagesdjangocontribstaticfileshandlers.py", line 58, in get_response
    return self.serve(request)
  File "D:Python27libsite-packagesdjangocontribstaticfileshandlers.py", line 51, in serve
    return serve(request, self.file_path(request.path), insecure=True)
  File "D:Python27libsite-packagesdjangocontribstaticfilesviews.py", line 41, in serve
    return static.serve(request, path, document_root=document_root, **kwargs)
  File "D:Python27libsite-packagesdjangoviewsstatic.py", line 61, in serve
    content_type, encoding = mimetypes.guess_type(fullpath)
  File "D:Python27libmimetypes.py", line 297, in guess_type
    init()
  File "D:Python27libmimetypes.py", line 358, in init
    db.read_windows_registry()
  File "D:Python27libmimetypes.py", line 258, in read_windows_registry
    for subkeyname in enum_types(hkcr):
  File "D:Python27libmimetypes.py", line 249, in enum_types
    ctype = ctype.encode(default_encoding) # omit in 3.x!
  File "D:Python27libencodingsutf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 1: invalid start byte

一看就知道就知道又是蛋疼的Python编码问题了,每次写Python项目,总要被编码问题折腾几下,这次也不例外。结果网上一搜,也没搜出解决方法,倒是相关错误有人给出页面顶部加上编码设置:

#encoding:utf8

这有点要命,django项目那么多文件怎么加?应该是配置里有,于是找到了相关信息并在settings.py里添加:

DEFAULT_CHARSET = 'utf-8'
FILE_CHARSET = 'utf-8'

结果还是没有解决问题,又看到有人建议用g www.111cn.net b18030,只好把上面那两句改成

DEFAULT_CHARSET = 'gb18030'
FILE_CHARSET = 'gb18030'

问题仍旧没有解决,最后摸索了两个小时快接近崩溃边缘时,偶然我的一个设置居然把这痛苦编码问题给解决了,在manage.py添加:

reload = reload(sys)
sys.setdefaultencoding('gb18030')

问题解决,打开css静态文件也正常响应内容了

 

时间: 2024-11-05 18:22:48

解决Django1.6访问static内容编码错误的办法的相关文章

firefox出现内容编码错误

使用php的程序用浏览器访问出现firefox提示 内容编码错误 无法显示您尝试查看的页面,因为它使用了无效或者不支持的压缩格式,而在ie下就是'该页无法显示',使用了ThinkPHP框架,一直不知道是什么原因,后来一步一步排查,原来是程序里使用了ob_start('ob_gzhandler')导致的. 而解决这个问题,其实很简单,以下二个问题可能导致此问题产生的. 1.服务器不支持这种压缩格式,可使用function_exists('ob_gzhandler')判断,解决方法 ob_start

firefox提示:内容编码错误 无法显示您尝试查看的页面

firefox错误码: 内容编码错误 无法显示您尝试查看的页面,因为它使用了无效或者不支持的压缩格式. 请联系网站的所有者以告知此问题   错误原因和解决办法: 1.保证php程序没有任何警告或出错的提示 2.PHP代码ob_start('ob_gzhandler')导致的,导致的原因有两种:       a.服务器不支持这种压缩格式,可使用function_exists('ob_gzhandler')判断,解决方法 ob_start('ob_gzhandler')改为ob_start():  

django访问静态资源css, js, 图片报编码错误解决办法

错误截图如下 可以发现所有的静态资源文件,包括css, js, 图片文件都找不到,后台错误报编码错误. 试过很多办法,包括在settings.py 中设置 DEFATULT_CHARSET='UTF-8' 等,也还试过有人说过的,在manage.py 中加入下面的语句: 程序代码 程序代码  代码如下 复制代码 reload = reload(sys) sys.setdefaultencoding("cp1251") #其实这里还会报错,貌似python2.7 不支持 setdefau

Coverity谈“开发中测试”与程序员最常犯的编码错误

Coverity公司位于美国加州旧金山,他们的产品包括Coverity Integrity Control.Coverity Static Analysis等一系列代码分析工具与解决方案.日前,Coverity公司产品副总Ezi Boteach先生就"开发中测试".代码复查和开发人员最常犯的编码错误接受了采访. 问题:能否介绍下Coverity的"开发中测试"理念和你们的Development Testing Platform? Ezi:"开发中测试&qu

关于Apache默认编码错误 导致网站乱码的解决方案_Linux

最近经常有同学在使用LAMP/WAMP时,遇到这样的编码错误问题: A网站程序编码UTF-8编码安装成功,运行成功. B网站程序编gb2312也要安装在同一服务器上. 这样就出现问题了,Apache默认编码UTF-8在解析A网站的时候没有任何问题,当运行B网站时出现的"蝌蚪文"乱码问题. 单纯的修改Apache默认编码为gb2312这样就导致A网站出现"蝌蚪文". 问题分析: 如果你在网上搜索 "apache配置",搜到的页面大多都会建议你在ht

ssl-tomcat6 http 能正常访问 https 报404错误

问题描述 tomcat6 http 能正常访问 https 报404错误 同url http能正常访问 https不能访问 报404错误 如:http://localhost/index.index 正常 https://localhost/index.html 为404 服务器环境:linux tomcat 6.0.36 jdk 1.6.0_37 64-Bit本机模拟配置一切正常.推断可能服务器环境存在问题,求大神指出server.xml<?xml version='1.0' encoding

WannaCry的一个编码错误,也许能帮我们恢复加密文件

卡巴斯基实验室针对WannaCry代码进行深入分析,发现WannaCry里面的各种变成错误,这样一来感染的人就有可能进行文件恢复了. 就在上个月,这个名叫WannaCry的勒索软件仅在72小时不到的时间里通过其自我传播功能感染了全球超过三十万台存在漏洞的Windows PC,但这并不意味着WannaCry是一款高质量的勒索软件. 近期,来自卡巴斯基实验室的安全研究专家在对WannaCry的代码进行了深入分析之后发现,WannaCry勒索软件蠕虫的恶意代码中存在大量的编码错误,而这些编码错误将有可

解决jQuery使用JSONP时产生的错误_jquery

什么是域,简单来说就是协议+域名或地址+端口,3者只要有任何一个不同就表示不在同一个域.跨域,就是在一个域中访问另一个域的数据. 如果只是加载另一个域的内容,而不需要访问其中的数据的话,跨域是很简单的,比如使用iframe.但如果需要从另一个域加载并使用这些数据的话,就会比较麻烦.为了安全性,浏览器对这种情况有着严格的限制,需要在客户端和服务端同时做一些设置才能实现跨域请求. JSONP简介JSONP(JSON with Padding)是一种常用的跨域手段,但只支持JS脚本和JSON格式的数据

PHP抓取HTTPS内容和错误处理的方法_javascript技巧

问题 在研究Hacker News API的时候遇到一个HTTPS问题.因为所有的Hacker News API都是通过加密的HTTPS协议访问的,跟普通的HTTP协议不同,当使用PHP里的函数 file_get_contents() 来获取API里提供的数据时,出现错误 使用的代码是这样的: <?php $data = file_get_contents("/http://blog.it985.com/"); ?> 当运行上面的代码是遇到下面的错误提示: PHP Warn