无法在Django加载CSS文件问题,怎么解决

html-css023

无法在Django加载CSS文件问题,怎么解决,第1张

这种情况一般会在windows系统下出现

1、前台、后台如果无法加载css等样式。(建议通过此办法来解决)

这是因为你安装的某些IDE 或者其他更改了注册表导致的

系统的注册表\HKEY_CLASSES_ROOT\.css的Content Type不是text/css,修改即可。改完记得重启开发服务器并按Ctrl+F5强制刷新页面。

2、前台如果无法加载css等样式。(如果你的后台没问题那就试试这个简单方法)

前提:django1.8

在html页面可以请求道css,js文件并在chrome的开发者工具中查看css,js文件返回状态为200

原因:

django1.8 正在html页里能够要求讲css,js文件并正在chrome的开辟者对象中检察css,js文件返回状况为200 缘由: html页里正在头部增加了<!DOCTYPE html>声明致使css款式减载没有起

解决办法:

html页面在头部添加了<!DOCTYPE html>申明导致css样式加载不起效果,去掉此标签css效果起作用

如果客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。但是对于动态页面,就是动态产生的页面,往往没有包含 Last Modified 信息,这样浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。

因此,对于动态页面做缓存加速,首先要在 Response 的 HTTP Header 中增加 Last Modified 定义,其次根据 Request 中的 If Modified Since 和被请求内容的更新时间来返回 200 或者 304 。虽然在返回 304 的时候已经做了一次数据库查询,但是可以避免接下来更多的数据库查询,并且没有返回页面内容而只是一个 HTTP Header,从而大大的降低带宽的消耗,对于用户的感觉也是提高。

当这些缓存有效的时候,通过 HttpWatch 查看一个请求会得到这样的结果:

第一次访问 200

鼠标点击二次访问 (Cache)

按F5刷新 304

按Ctrl+F5强制刷新 200

如果是这样的就说明缓存真正有效了。以上就是我对 HTTP 304 的一个理解。

如果你也是这个情况的话,通过以下的方案能够90%的解决问题,

在浏览器中打开django自带的后台admin,发现浏览器中是响应成功的,但是样式就是丢失了,

这个时候不要着急,winl+R (win键是键盘左下角第二个键) 打开 输入regedit 打开你的注册表,

然后找到 HKEY_CLASSES_ROOT ->.css(前面有个点…)找到之后点击它,然后选择Content Type

更改内容为 text/css 初始的内容是application/x-css、所以导致样式丢失的,更改过来之后ctrl+shift+r强制

刷新浏览器+重启django服务器就好啦,你想要的样式就会恢复啦,

亲测可用 才转给你的