资源被解释为样式表,但是以MIMEtypestext / html传输(似乎与web服务器无关)

我有这个问题。 Chrome继续返回这个错误

资源被解释为样式表,但是以MIMEtypestext / html传输

受此错误影响的文件只是样式,select和jquery-gentleselect(其他CSS文件,以相同的方式导入索引,运行良好,没有错误)。 我已经检查过我的MIMEtypes,并且CSS / CSS已经是text / css了。

老实说,我想先从理解这个问题开始(这似乎是我不能单独做的事情)。

我想先了解这个问题

浏览器向服务器发送HTTP请求。 服务器然后做一个HTTP响应。

请求和响应都包含一堆标题和一个(有时是可选的)正文,其中包含一些内容。

如果有一个body,那么其中一个header是Content-Type ,它描述了什么是body(是一个HTML文档?一个图像?表单提交的内容?等等)。

当你问你的样式表时,你的服务器告诉浏览器它是一个HTML文档( Content-Type: text/html ),而不是样式表( Content-Type: text/css )。

我已经检查了我的myme.type和文本/ css已经在CSS上。

然后,有关您的服务器的其他内容是使该样式表来与错误的内容types。

使用浏览器开发人员工具的“networking”选项卡检查请求和响应。

使用Angular?

这是一个非常重要的警告要记住。

基地标签不仅需要在头上,而且要在正确的位置。

我有我的基地标签在头部的错误的地方,它应该在URL请求的任何标签之前。 基本上把它作为第二个标签下面的标题解决了我。

 <base href="/"> 

我在这里写了一个小贴子

我也面临同样的问题。 在做了一些研发之后,我发现问题出在文件名上。 实际文件的名称是“lightgallery.css”,但在链接时我input了“lightGallery.css”

更多信息:

它运行在我的本地主机(操作系统:Windows 8.1和服务器:Apache)。 但是,当我上传我的应用程序到远程服务器(不同的操作系统和Web服务器比我的本地主机)它不起作用,给我与你一样的错误。

所以,问题是服务器的区分大小写(关于文件名)。

使用Angular

在我的情况下使用ng-href而不是href解决了我。

注意 :

我正在用laravel作为后端

试试这个<link rel="stylesheet" type="text/css" href="../##/yourcss.css">

其中##是你的.CSS文件所在的文件夹

不要忘记:(双点)。

我也有这个错误的问题,并find了一个解决scheme。 这并不能解释错误发生的原因,但在某些情况下似乎可以解决这个问题。

在css文件的path之前包含一个正斜杠,如下所示:

<link rel="stylesheet" href="/css/bootstrap.min.css">

基于其他的答案,似乎这个消息有很多原因,我想我只是分享我个人的解决scheme,以防将来任何人有我的确切问题。

我们的网站从AWS Cloudfront发行版加载CSS文件,该发行版使用S3存储桶作为来源。 这个特殊的S3存储桶保持与运行Jenkins的Linux服务器同步。 通过s3cmdsync命令根据操作系统所说的(可能基于文件扩展名)自动设置S3对象的内容types。 出于某种原因,在我们的服务器中,除了.css文件之外,所有的types都被正确设置,它们给出了text/plaintypes。 在S3中,当你检查文件属性中的元数据时,你可以将types设置为任何你想要的。 将其设置为text/css允许我们的网站正确解释文件为CSS并正确加载。

@Rob Sedgwick的回答给了我一个指针,但是,在我的情况下,我的应用程序是一个Spring Boot应用程序 。 所以我只是在我的安全configuration中添加了排除项目到相关文件的path…

注 – 这个解决scheme是基于SpringBoot的…你可能需要做的可能会根据你使用的编程语言和/或你正在使用的是什么框架

但是要注意的是,

实质上,当每个请求(包括用于静态内容的请求)都被authentication时,都可能导致问题。

所以,让我们说我的静态内容导致错误的一些path如下;

一个叫“插件”的path

HTTP://本地主机:8080 /插件/风格/ CSS /文件1.CSS

HTTP://本地主机:8080 /插件/风格/ CSS /文件2.css

HTTP://本地主机:8080 /插件/ JS /脚本file.js

而一条名为“页面”

HTTP://本地主机:8080 /页/风格/ CSS /样式1.CSS

HTTP://本地主机:8080 /页/风格/ CSS /样式2.css

HTTP://本地主机:8080 /页/ JS / scripts.js中

然后我在Spring Boot Security Config中添加下面的例外:

 @Configuration @EnableGlobalMethodSecurity(prePostEnabled = true) @Order(SecurityProperties.ACCESS_OVERRIDE_ORDER) public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers(<comma separated list of other permitted paths>, "/plugins/**", "/pages/**").permitAll() // other antMatchers can follow here } } 

从authentication中排除这些path"/plugins/**""/pages/**"使错误消失。


干杯!

我在使用表单身份validation的MVC4中有类似的问题。 问题是web.config中的这一行,

 <modules runAllManagedModulesForAllRequests="true"> 

这意味着每个请求,包括静态内容的请求都被authentication。

将此行更改为:

 <modules runAllManagedModulesForAllRequests="false"> 

将匿名身份validation凭据设置为应用程序池标识为我做了窍门。

在这里输入图像描述

我面对同样的事情,用相同的.htaccess文件制作漂亮的url。 经过几个小时的环视和试验。 我发现这个错误是因为相对链接的文件。

浏览器将开始为所有的CSS,js和图像文件提取相同的源html文件,当我将浏览到服务器深入几步。

为了解决这个问题,你可以使用你的html源代码中的<base>标签,

 <base href="http://localhost/assets/"> 

并链接到文件,

 <link rel="stylesheet" type="text/css" href="css/style.css" /> <script src="js/script.js"></script> 

或者使用所有文件的绝对链接。

 <link rel="stylesheet" type="text/css" href="http://localhost/assets/css/style.css" /> <script src="http://localhost/assets/js/script.js"></script> <img src="http://localhost/assetshttp://img.dovov.comlogo.png" /> 

如果有人来这个post,并有类似的问题。 我刚刚经历了类似的问题,但解决scheme非常简单。

开发人员错误地将web.config的副本放到了CSS目录中。 一旦删除,所有的错误都解决了,页面正常显示。

我遇到同样的问题,同时恢复旧的MEAN堆栈项目的工作。 我使用nodemon作为我的本地开发服务器,并得到相同的错误Resource interpreted as stylesheet but transferred with MIME type text/html 。 我从nodemon转到http-server可以在这里find。 它立即为我工作。

发生这种情况时,我从CSS CDN服务的CSS样式表从CSS链接中删除协议。

这没有错误:

 <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Architects+Daughter"> 

但是,这给了错误资源解释为样式表,但与MIMEtypes文本/ HTML传输

 <link rel="stylesheet" href="fonts.googleapis.com/css?family=Architects+Daughter"> 

我正面临类似的问题。 并在这个奇妙的堆栈溢出页面探索解决scheme。

user54861的回应(不匹配姓名的情况下的感觉)使我好奇再次检查我的代码,并意识到“ 我没有上传两个js文件,我把它们加载到头标记 ”。 🙂

当我上传他们的问题就跑了! 代码运行和页面呈现没有任何其他错误!

所以,故事的寓意是不要忘记确保所有的js文件都上传到网页正在寻找的地方。

我遇到了一个.NET应用程序,一个名为MojoPortal的CMS开放源代码的问题。 在我的某个特定网站的主题和皮肤之一中,当浏览或testing时,它会像窒息一样磨碎和放慢速度。

我的问题不是CSS的“type”属性,而是“另一件事”。 我确切的变化是在Web.Config 。 我将MinifyCSS,CacheCssOnserver和CacheCSSinBrowser的所有值更改为FALSE。

一旦这个设定,网站在生产中再次迅速。

在这里输入图像描述 我最近也在Chrome上面对这个问题。 我只是给绝对path解决我的CSS文件问题。

 <link rel="stylesheet" href="<?=SS_URL?>arica/style.css" type="text/css" /> 

我想拓展托德R在OP的点。 在asp.net页面中, web.config文件定义了访问应用程序中每个文件或文件夹所需的权限。 在我们的情况下,CSS文件的文件夹不允许未经授权的用户访问,导致在用户被授权之前在login页面上失败。 在web.config更改所需的权限允许未经授权的用户访问CSS文件并解决此问题。

这是因为你必须设置内容types为文本/ HTML而不是文本/ CSS为您的服务器页面(PHP,Node.js等)