【Django】MIME type (‘text/html‘) is not a supported stylesheet MIME type | uWsgi | Nginx
问题分析
这是浏览器正常的请求类型分析:互联网上的资源有各种类型,通常浏览器会根据响应头的Content-Type字段来分辨它们的类型。例如:”text/html”代表html文档,”image/png”是PNG图片,”text/css”是CSS样式文档。然而,有些资源的Content-Type是错的或者未定义。这时,某些浏览器会启用MIME-sniffing来猜测该资源的类型,解析内容并执行。
所以解决方法中不能通过屏蔽猜测来解决,排除在配置文件中手动屏蔽的方法:SECURE_CONTENT_TYPE_NOSNIFF = False
(此解决方法对我也无效);在配置文件末尾手动声明资源类型又破坏了规范的完整性:
import mimetypes mimetypes.add_type('text/css', '.css') mimetypes.add_type('application/javascript', '.js')
。
注:以上两种解决方法均来自参考二
解决方法
开发环境
在主urls.py
中添加路由定位到static文件夹。
From:EvalAI源码
# evalai/urls.py 主路由
# DJANGO-SPAGHETTI-AND-MEATBALLS URLs available during development only.
from django.conf.urls.static import staticif settings.DEBUG:urlpatterns += ([... ]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT))
EvalAI是一个AI竞赛平台。
生产环境
添加nginx服务器与uwsgi的socket对接即可。
uWsgi对于mime-types的校验文件位于/etc/mime.types
。
文档地址:https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/StaticFiles.html#mime
uWsgi配置如下,其中主要配置为声明socket端口而不是http服务。
# web为地址
[uwsgi]
chdir = /code
module = web.wsgi:application
master = true
processes = 4
socket = :8001
vaccum = true
python-autoreload = 1
buffer-size=32768
chmod-socket = 777
因为我所使用的为docker-compose部署,nginx和django属于同一网关下,所以在upstream轮询规则中定义django即可,其中监听80端口,对于/的访问定义uwsgi_pass指向django这一轮询规则,对于static则指明django的静态文件目录,code/uwsgi_params
来源于https://github.com/nginx/nginx/blob/master/conf/uwsgi_params,放置到你所指定目录即可,里面是请求头部规则声明。
Nginx配置如下:
upstream django {server django:8001; # 和ini文件中的socket端口保持一致
}server {listen 80;server_name localhost;#charset koi8-r;access_log /var/log/nginx/host.access.log main;error_log /var/log/nginx/error.log error;location / {uwsgi_pass django;include /code/uwsgi_params;}location /static {alias /code/static; # 静态资源路径}location /media {alias /code/media; # 你项目中静态文件的存放路径}
}
参考
- 生产环境浏览器Strict MIME TYPE Checking问题解决
- Django项目中碰到because its MIME type (‘text/plain‘) is not executable,and strict MIME type该怎么解决?
- 使用nginx + uwsgi socket的方式来部署Django项目
【Django】MIME type (‘text/html‘) is not a supported stylesheet MIME type | uWsgi | Nginx相关推荐
- MIME type (‘text/html‘) is not a supported stylesheet MIME type, and strict MIME checking is enabled
项目场景: 在index.html中引入一个css文件 问题描述 在index.html中引入一个css文件,报如下错误: Refused to apply style from 'http://lo ...
- 【Django】模板
本文为 Django 学习笔记,讲解模板的使用. 运行环境 Windows 10 Pycharm Community Edition 2020.1.3 Django 3.0.8 所有的代码见[Djan ...
- 【Django】图书管理
一.实现步骤 (一)创建Django项目 - books 创建Django项目,设置项目位置与项目名 (二)创建并注册应用 - index 1.创建index应用 在项目配置文件里,导入os模块 在控 ...
- 【Django】开发日报_3_Day:员工管理系统-创建项目
目录 0.创建新的Django项目 1.创建app 2.注册app 3.设计表结构 4.在MySQL中生成表 5.静态文件管理 6.部门管理 6.1 部门列表 0.创建新的Django项目 step1 ...
- linux 进程间通信 dbus-glib【实例】详解三 数据类型和dteeth(类型签名type域)(层级结构:服务Service --> Node(对象、object) 等 )(附代码)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
- 【Django】ORM操作#2
目录 必知必会的13条查询方法 单表查询之神奇的双下划线 一对多 ForeignKey 多对多 ManyToManyField 在Python脚本中调用Django环境 Django终端打印SQL语句 ...
- 论文阅读(XiangBai——【CVPR2017】Detecting Oriented Text in Natural Images by Linking Segments)...
XiangBai--[CVPR2017]Detecting Oriented Text in Natural Images by link Segments 目录 作者和相关链接 方法概括 方法细节 ...
- 【Django】开发日报_11_Day:手机号码管理系统-Ajax请求完善
目录 0.Django开发回顾 如果使用sqlite3(文件数据库)可以省略很多前面的数据库配置操作 1.Ajax请求页面完善 0.Django开发回顾 如果使用sqlite3(文件数据库)可以省略很 ...
- 【Django】开发日报_4_Day:手机号码管理系统-创建项目并实现基本功能
目录 0.新建Django项目 (1)修改setting.py (2)删除根目录下的templates (3)创建App (4)注册App (5)创建App->templates (6)引入st ...
最新文章
- ajax对象状态0,ajax返回readyState为0?
- python中sorted函数逆序_Python中sorted函数的用法(转)
- Jenkins中连接Git仓库时提示:error: The requested URL returned error: 401 Unauthorized while accessing
- 牛客小白月赛2 D 虚虚实实 【欧拉图】【连通图】
- 浅析 EF Core 5 中的 DbContextFactory
- linux本地mysql与服务器同步数据_linux下指定mysql数据库服务器主从同步的配置实例...
- python基础知识500题_Python基础语法习题参考(0-9关)
- spring 集成 spring cloud config 的相关知识
- 好好学习 天天编程—C语言之环境搭建(一)
- jquery-easyui中表格的行编辑功能
- java map 教程_Map和Set
- 编译自己功能定制的Fedora7内核
- matlab如何修改图例的颜色,在MATLAB图例中设置线条颜色?
- 全国大学生数学竞赛(非数学专业)习题精讲等相关资源
- h5页面 请在微信客户端打开链接_使用Fiddler抓包解决“请在微信客户端打开链接”的问题...
- 留学生Research Proposal 怎么写?
- On the eighth day
- 算法设计与分析第五章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
- 微信外卖小程序 怎么计算与客户的距离_3分钟搞定微信小程序类美团用户商家距离计算...
- Vscode Remote SSH 远程连接失败过程报错:试图写入的管道不存在
热门文章
- 机电一体化技术_Electromechanical Integration
- Android 融云IM集成以及使用详解(二)
- Pycharm连接远程服务器并编写、运行python代码
- 汉文SEO大神:教你使用nofollow并分析百度nofollow的作用
- 2020 ICASSP之人脸识别:Facial Feature Embedded CycleGAN for VIS-NIR Translation
- 左程云——归并排序和快速排序
- 西南电力设计院之项目文档管理
- 《Natural Language Processing with Python》读书笔记 003期
- BUG:Win由于找不到iutils.dIl 无法继续执行代码……
- oracle ebs版本查看,怎么查看oracle ebs的系统版本号以及各模块的版本号 | 码农网...