django无法加载出css样式,不管是admin还是自己创建的html都无法加载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django无法加载出css样式,不管是admin还是自己创建的html都无法加载相关的知识,希望对你有一定的参考价值。

django无法加载出css样式,不管是admin还是自己创建的html都无法加载出样式和图片,INSTALLED_APPS 中已经配置了'django.contrib.staticfiles',并且在浏览器中将admin页面另存到桌面后,再打开就能显示出样式。还有就是对于自己创建的html网页,点击网页中的css链接可以在查看,但点击图片就是图二的错误提示。我是django的初学者,这几个问题已经困扰我好几天了,希望有前辈能赐教,谢谢啦

如果你也是这个情况的话,通过以下的方案能够90%的解决问题,
在浏览器中打开django自带的后台admin,发现浏览器中是响应成功的,但是样式就是丢失了,
这个时候不要着急,winl+R (win键是键盘左下角第二个键) 打开 输入regedit 打开你的注册表,
然后找到 HKEY_CLASSES_ROOT -> .css(前面有个点…)找到之后点击它,然后选择Content Type
更改内容为 text/css 初始的内容是application/x-css、所以导致样式丢失的,更改过来之后ctrl+shift+r强制
刷新浏览器+重启django服务器就好啦,你想要的样式就会恢复啦,
亲测可用 才转给你的
参考技术A 配置静态文件地址。
可以先在你的app目录下创建一个文件夹如static
在settings.py里面最后添加
STATIC_ROOT =“你的静态文件夹地址的绝对路径”
或者是
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
然后在终端运行
python manage.py collectstatic

图二中错误是编码问题。看一下你的python文件是不是用utf-8编码的。不是的话改成utf-8本回答被提问者和网友采纳

Django常见出错解决方案汇总

一、模板类型错误:

错误原因:在models中漏掉了return:

技术图片

 

 

【这里】加上return即可。

 

二、url相关错误

静态文件无法访问,如样式出不来

 

css样式总出不来,折腾了一个多小时,原来,urlpatterns 写成这样:

技术图片

我把 [登录注册] url后面也写成 = 而并非+= ,这就造成了url覆盖,所以就加载不了静态文件,同时首页也会打不开。

 

三、编码错误

错误类型如下:

 技术图片

 

 

解决方案:

 

混淆了 python2 里边的 str 和 unicode 数据类型。

 

(0)、你需要的是让编码用实际编码而不是 ascii

 

(1)、对需要 str->unicode 的代码,可以在前边写上

技术图片

 

 

把 str 编码由 ascii 改为 utf8 (或 gb18030)

 

(2)、python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii

 

参考:http://vososo.com/vo/558

 

四、其他错误

Django POST请求错误forbidden(403) CSRF verification failed. Request aborted

 

在 settings.py 中的MIDDLEWARE_CLASSES 设置下 添加

‘django.middleware.csrf.CsrfResponseMiddleware‘,

重新 runserver.   OK

重点参考:http://blog.csdn.net/feng88724/article/details/7221449

 

我用的是django1.2.3,当使用session时,也会像上面出错,这时把下面注释掉即可:

 

# ‘django.middleware.csrf.CsrfViewMiddleware‘, #这段代码理应注释掉,在使用session的时候

login:login() takes exactly 1 argument (2 given)

 

这在登录视图函数的时候特别常见,原因就是函数login与login模块的名字冲突,如登录url这样写:

技术图片

 

  那么,对应的视图函数如下:

技术图片

 

当然如果这样写,不要忘记导入:

技术图片

 

 

这样就坏事了,因为出现了两个login.这就导致了上面的问题,解决办法有两个,

修改login视图函数的名称和对应的url中。如webLogin

导入设置:from ..login as _login 这样也行,别忘了都要改过来。

无法跳转

如,我想登录。然后登录成功后跳转到主页,如上:把上面代码改写成这样

技术图片

 

 

但是却没有实现跳转,如下:

 

这里并不是跳转写错了,而是没有注意到我这个登录界面是ajax POST形式的,代码如下:

//登录

技术图片

 

 

Query.post( url, [data], [callback], [type] ) :

 

如果返回,它只返回一个字符串。所以并不能在后台跳转。

解决方法是: return HttpResponse(‘ok‘),通过接受返回的Ok 来在前台实现跳转。

 

以上是关于django无法加载出css样式,不管是admin还是自己创建的html都无法加载的主要内容,如果未能解决你的问题,请参考以下文章

django的admin界面怎么没有样式

django 解决css,js文件304导致无法加载显示问题

Python解决Django Admin管理界面样式表(CSS Style)丢失问题

Django Admin 样式表不会加载到生产服务器上

python Django1.3 建立网站,无法加载css

cPanel:Django Admin Portal 未加载静态/CSS 文件