【转】关于Django 中启动自带服务器进入后台admin没有样式的问题...

凌晨1点被这个问题搞到差点通宵,这个问题直接去百度,可以发现有很多关于这个问题的解决方法,但是不是我遇到的关键问题,不过这里也顺带总结一下这些方法:

主要问题:在项目manage.py所在目录用命令行输入

我这里的端口选了9999,开启Django的自带的服务器,项目的静态文件没更改过,进入Django自带的后台管理admin时出现css样式不显示的情况

一度以为是python2.7版本的问题,编码字符不是utf-8,而python3版本都是utf-8编码格式,尝试在settings.py添加一下代码

import sys 
reload(sys) 
sys.setdefaultencoding('gbk')

发现无效,接着在python的安装路径,我的是默认路径C:\Python27\Lib,找到site.py文件第470行将encoding里面的值改为gbk:

encoding = "gbk" # Default value set by _PyUnicode_Init()

还是不行,接着在同目录下找到mimetypes.py文件,在末尾添加代码:

reload(sys)
sys.setdefaultencoding('gbk')


也不行。(还有一种改static指向的方法,在项目里面新建目录static然后在settings.py添加STATIC_ROOT=' /myblog/static' 参数填static的路径,然后命令行执行python manage.py collectstatic会把需要的静态文件复制到static文件下,可惜也是没用。。。)

一度想直接下载python3版本,后来在浏览器的开发者工具里面看到,css的样式文件的状态码是200,代表是接收到了


问题出在了css文件解析的问题了,因为mimetypes.py在启动时会调用注册表,所以又在注册表\HKEY_CLASSES_ROOT\.css里面把Content Type的application/x-css改为text/css

也是什么用都没有,后来想到版本解析的问题,所以我干脆将C:\Python27\Lib\site-packages\django\contrib\admin\templates\admin登陆界面的版本解析删掉,对的就是html5的声明<!DOCTYPEhtml>,结果如下:

(登陆界面C:\Python27\Lib\site-packages\django\contrib\admin\templates\admin\base.html)
暴力解决法...怪异模式...


--------------------- 
作者:Arthur__Wong 
来源:CSDN 
原文:https://blog.csdn.net/Arthur__Wong/article/details/72575468 
版权声明:本文为博主原创文章,转载请附上博文链接!

但是在安装django-cms系统的时候,仍旧出现这个问题

所以又找了个解决方案,完美解决!

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">第一次根据教程兴高采烈的打开后台的时候发现是这样的</span>

尼玛 坑爹啊 怎么光秃秃的,跟人家的不一样啊

打开firebug 发现报错,找不到css

通过google找到原因,是因为admin所需的js ,css等静态文件虽然都在django的安装目录内,但是我们没有在配置文件里设置一个正确的指向。

再次google发现配置方法五花八门,但基本上分两种,一种是需要配置的apache/ ngnix,另一种是修改urls.py配置文件。

因为我本机上还没有装apache,ngnix所以先用第二种方法配置

无论那种方法我们都要首先找到这些css在我们机器上的绝对路径(当然我们也可以找到静态文件拷贝到我们指定的目录)

1.第一种方法:找到django静态文件的目录

在终端进入python

root@server-zc:/home/x/mysite# python
>>> import django
>>> django.__file__
'/usr/local/lib/python2.7/dist-packages/django/__init__.pyc'

找到根目录之后我需要的绝对路径为(不同版本可能不一样,根据自己实际情况来)
/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/
之后修改settings.py

STATIC_ROOT = '/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/'
STATIC_URL = '/static/'


2.第二种方法,建立自己的静态文件夹

修改settings,建立自己的文件夹

STATIC_ROOT = "/var/www/example.com/static/"

运行下面命令把相关文件copy到这个目录

 python manage.py collectstatic

下面都相同


然后修改urls.py

import settings
 
 
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT }),


注意位置要写对,别直接复制进去
其中/static/是可以按自己喜好改的 但是两个文件的后缀名要一致

之后保存修改,刷新之前的后台


ok 搞定
--------------------- 
作者:firesnow 
来源:CSDN 
原文:https://blog.csdn.net/a657941877/article/details/8953233 
版权声明:本文为博主原创文章,转载请附上博文链接!

(对于 django-cms系统的首页样式表丢失问题:修改 \django-cms-develop\env\Lib\site-packages\cms\templates\cms\welcome.html 文件,删除代码 <!doctype html>)就正常了

为什么 <!doctype html> 会导致css显示不正常??

猜你喜欢

转载自blog.csdn.net/u012767263/article/details/88352064