Django项目中碰到because its MIME type (‘text/plain‘) is not executable,and strict MIME type该怎么解决?

  • Post author:
  • Post category:其他


首先这是因为浏览器设置的原因导致的

一共可能出现两种错误

第一种错误是:

Refused to display ‘http://localhost:8000/cdny/student_manage/in a frame because it setX-Frame-Options’ to ‘deny’.

解决方法:

在settings.py中加一条配置:

X_FRAME_OPTIONS = 'SAMEORIGIN'  
# DENY :表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许  
# SAMEORIGIN :表示该页面可以在相同域名页面的 frame 中展示  
# ALLOW-FROM uri :表示该页面可以在指定来源的 frame 中展示  

第二种错误是:

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.

解决方法:

在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')




版权声明:本文为shenbossed原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。