在django admin运行后,访问http://127.0.0.1:8000
报错。
报错信息原文:
Refused to execute script from 'http://127.0.0.1:8000/static/layui/layui.js' because its MIME type ('text/plain') is not executable, and strict MIME type checking is enabled.
翻译:拒绝执行脚本…….因为它的MIME类型(‘text/plain’)是不可执行的,并且启用了严格的MIME类型检查。
因为浏览器设置的原因导致的,可能有多种原因,下面分析了四种情况。
第一种错误:
js、css引用的顺序十分重要,如果没有实现你想要的效果,却找不到哪里出现问题了,及时查看引用顺序。例如:jQuery要在bootstrap前面引用。
第二种错误:
js、css引用的顺序没有问题。
在settings.py中加一条配置:
SECURE_CONTENT_TYPE_NOSNIFF = False
这个X-Content-Type-Options
是nosniff
,错误解释:当你请求一个文件从raw.githubusercontent.com,gist.githubusercontent.com,bitbucket.org或者gitlab.com,他们通常提供(在JavaScript,HTML,CSS,以及一些其他文件类型的情况下)用Content-Type
的text/plain
。结果,大多数现代浏览器实际上不会将其解释为JavaScript,HTML或CSS。
第三种错误:
还有一种情况可能是Windows系统上不知道什么时候破坏了注册表,把扩展名为js的文件类型注册为'text/plain'
,应该为'application/javascript'
。
要解决这个问题,请在Django项目 setting.py
中 末尾添加如下代码,强制Django使用'application/javascript'
作为 js文件类型
第三种解决方法:
# 在settings.py末尾加入
import mimetypes
mimetypes.add_type('text/css', '.css')
mimetypes.add_type('application/javascript', '.js')
第四种错误:
报错信息:
Refused to display 'http://localhost:8000/admin/orders/' in a frame because it set 'X-Frame-Options' to 'deny'.
配置X-Frame-Options
主要用处是用于防止点击劫持。
X-Frame-Options
有以下配置项:
1.DENY:不能被嵌入到任何iframe或者frame中。
2.SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中
3.ALLOW-FROM uri:只能被嵌入到指定域名的框架中。
解决方法:
在settings.py中加一条配置:
X_FRAME_OPTIONS = 'SAMEORIGIN'
# DENY :表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许
# SAMEORIGIN :表示该页面可以在相同域名页面的 frame 中展示
# ALLOW-FROM uri :表示该页面可以在指定来源的 frame 中展示
出处:www.l1mn.com
原文地址:https://www.l1mn.com/p/j0kba3.html
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
Copyright © L1MN.COM 联系方式:l1mnfw@163.com