我有这个问题。Chrome继续返回此错误
资源解释为样式表,但以MIME类型text/html传输
受此错误影响的文件只有Style、chosen和jquery-gentleselect(以相同方式导入索引的其他CSS文件工作良好且没有错误)。我已经检查了我的MIME类型和文本/css已经在css上。
老实说,我想从理解问题开始(这似乎是我一个人做不到的事情)。
我有这个问题。Chrome继续返回此错误
资源解释为样式表,但以MIME类型text/html传输
受此错误影响的文件只有Style、chosen和jquery-gentleselect(以相同方式导入索引的其他CSS文件工作良好且没有错误)。我已经检查了我的MIME类型和文本/css已经在css上。
老实说,我想从理解问题开始(这似乎是我一个人做不到的事情)。
当前回答
我的问题比这篇文章中的所有答案都要简单。
我必须设置IIS以包含静态内容。
其他回答
如果您使用的是JSP,则此问题可能来自您的servlet映射。 如果你的映射默认使用url,就像这样:
@WebServlet("/")
然后容器解释CSS url,并转到servlet,而不是转到CSS文件。
我有同样的问题,我改变了我的映射,现在一切正常
我想从理解问题开始
浏览器向服务器发出HTTP请求。然后服务器做出一个HTTP响应。
请求和响应都由一堆头部和一个(有时是可选的)包含一些内容的主体组成。
如果有一个主体,那么其中一个头是Content-Type,它描述了主体是什么(它是HTML文档吗?一个图像?表单提交的内容?等等)。
当您请求样式表时,服务器会告诉浏览器这是一个HTML文档(Content-Type: text/ HTML),而不是一个样式表(Content-Type: text/css)。
我已经查过了。Type and text/css已经在css上了。
那么,您的服务器的其他部分使样式表具有错误的内容类型。
使用浏览器开发人员工具的Net选项卡检查请求和响应。
我在为一个用npm安装的React布局模块加载CSS时遇到了这个问题。你必须导入两个.css文件来让这个模块运行,所以我最初导入它们是这样的:
@import "../../../../node_modules/react-grid-layout/css/styles.css";
但发现文件扩展名必须被删除,所以这是有效的:
@import "../../../../node_modules/react-grid-layout/css/styles";
如果nodejs和使用express 下面的代码工作…
res.set('Content-Type', 'text/css');
有同样的错误,因为我忘记发送一个正确的头
header("Content-type: text/css; charset: UTF-8");
print 'body { text-align: justify; font-size: 2em; }';