资源解释为样式表,但使用MIME类型text / javascript进行传输

时间:2017-01-19 06:14:16

标签: javascript css asp.net-mvc

我使用MVC,Java Script,JQuery,Ajax创建应用程序。当我使用visual studio进行调试时,它的工作正常,没有任何脚本错误。之后,我在IIS服务器上托管我的应用程序,它显示控制台错误,我的应用程序样式不完美。我已附上以下错误。

  

错误:资源被解释为样式表,但使用MIME类型text / javascript传输:

图像:

Console Error Message

10 个答案:

答案 0 :(得分:18)

我遇到了完全相同的问题,因为我的HTML中的行有以下形式:

<link rel="stylesheet" type="text/css" href="css/my_css_resource.css" />

当我从标记中删除rel="stylesheet"时,问题已解决。

答案 1 :(得分:7)

我无法评论,因为代表人数少,但这非常重要。

答案是:

“我遇到了完全相同的问题,由以下形式的 HTML 中的行引起:

<link rel="stylesheet" type="text/css" href="css/my_css_resource.css" />

当我从标签中删除 rel="stylesheet" 后问题就解决了。"

这是非常错误的。 rel="stylesheet" 告诉浏览器这是一个 css 文件。没有它,浏览器不知道如何处理 CSS 文件,并且其中的任何设计代码都不会被执行。

我通过从我的 html 文件中删除所有出现的 rel="stylesheet" 来确认这一点:结果是一个完全“裸”的页面,完全没有任何设计。我已经链接了 bootstrap css 和我自己的非空 css,并在删除 rel="stylesheet" 之前对其进行了测试,以查看样式实际上是由它们修改的。

Mime 类型由文件的发送者设置,在本例中为 Web 服务器。错误消息表示服务器以纯文本形式发送的文件被浏览器解释为 CSS。在这种情况下,问题出在服务器上,而不是在浏览器中。浏览器正确地将此 CSS 文件解释为样式表。服务器应该发送了正确的 MIME 类型。

再次,我很抱歉我将此作为答案发布,即使它不是,但由于代表较低,我无法发表评论。如果版主正在阅读此内容并希望将其删除,请将其作为对相关答案的评论发布,或者在可能的情况下将答案标记为错误,以免人们因此而受苦。

答案 2 :(得分:2)

我意识到,使用新的Windows 10计算机时,我无法在本地IIS中启用“静态内容”。为此,请从“控制面板”转到“打开或关闭Windows功能”,然后导航到以下位置:

enter image description here

确保选中此“静态内容”选项。然后,以管理员身份打开命令窗口并执行iisreset。

动臂,固定。

答案 3 :(得分:0)

我遇到了同样的问题,这是由于使用错误的方法创建了捆绑包。我粗心地复制了脚本包代码,并用CSS替换了它。确保为CSS使用 Style Bundle,为JS使用 Script Bundle。与渲染时相同。 样式 .Render()和脚本 .Render()。

我有这个:

bundles.Add(new ScriptBundle("~/bundles/bootstrap-core-css").Include("~/Content/themes/bootstrap/css/bootstrap.min.css"));

我更改为:

bundles.Add(new StyleBundle("~/bundles/bootstrap-core-css").Include("~/Content/themes/bootstrap/css/bootstrap.min.css"));

我希望这会有所帮助。

答案 4 :(得分:0)

我现在有相同的错误,我发现服务器上不存在css文件,因此它返回了404页。

因此,您需要验证CSS的链接。

资源被解释为样式表,但使用MIME类型text / javascript

传输

上面的消息可以解释为:

您请求的是CSS文件,但我们正在将JavaScript文件发送回给您。

如果要开始调试,我认为应该从确保文件源开始。

我希望这对某人有帮助。

答案 5 :(得分:0)

是的,我也看到了这个问题...出现此问题是因为在.htaccess中添加了RewriteRule ...所以 您必须更改css文件目录,然后它将解决

答案 6 :(得分:0)

我也遇到了CRA应用程序的此问题。我刚刚清除了浏览器数据,这似乎已经解决了此问题。可能是某些缓存的文件引起的。

在清除浏览器数据之前,我在edge和firefox上检查了相同的构建,并且按预期工作。

错误:资源被解释为样式表,但以MIME类型text / html传输:“ https://abcxyz.com/static/css/2.0ce10a16.chunk.css”。

答案 7 :(得分:0)

另一种可能性是,如果您的web.config文件中有一个小写的重写规则,则类似于:

<rule name="LowerCaseRule1" stopProcessing="true">
    <match url="[A-Z]" ignoreCase="false" />
    <action type="Redirect" url="{ToLower:{URL}}" />
</rule>

如果包括这种类型的规则,则需要确保所有脚本和样式表链接均为小写。如果不是,您可能会看到此警告。

答案 8 :(得分:0)

我有一个使用 Angular 6Docker 项目,但遇到了这个错误。我在这里尝试了许多明智的解决方案,但没有一个对我有用。我以各种方式对此错误进行了研究。 根据答案 here,我已将其添加到我的 nginx.conf 文件中,如下所示。

我的 nginx.conf 文件已更改为以下内容:

http
{
    # The line added.
    include /etc/nginx/mime.types;

    server {
        listen 80;
        listen [::]:80;
        server_name _;
        ...
    }
    ...
}

添加后,我的问题解决了,项目成功运行。 我希望这个答案能帮助那些正在寻找问题答案的人。

答案 9 :(得分:0)

我使用 react,得到同样的错误,我通过删除链接标签中的 type="text/css" 来修复, 没有错误,我验证了 css 真的被下载了。

如果你删除 rel="stylesheet",没有错误,但是 css 甚至不会下载,所以这不是一个解决方案,这是一个陷阱

        <link href="../src/css/gps/sidenav.css" rel="stylesheet" />