资源解释为样式表,但在ASP.NET IIS中使用MIME类型text / html进行传输

时间:2011-05-22 15:56:03

标签: asp.net css iis stylesheet mime-types

我正在执行登录页面时页面被css删除。

我从chrome调试器中发现了这条消息。我正在使用asp.net 2008。

有什么想法吗?

<head id="Head1" runat="server"> 
<title>CalibPro</title> 
<link href="css/Login.css" rel="stylesheet" type="text/css" /> 
<link href="css/Common.css" rel="stylesheet" type="text/css" /> 
</head>

根据@robx建议编辑。

6 个答案:

答案 0 :(得分:37)

在我看来,问题出在您的IIS配置中。它可能配置为使用text / html MIME类型传递.css文件。

尝试转到Web服务器上的MIME类型配置,看看是否可以在那里发现任何内容。

.css文件的正确MIME类型是text / css。

您还可以使用某些HTTP嗅探器(如fiddler)查看HTTP标头参数。

更新:接受的答案应该是@ brett-pennings指出的答案! 只是提供静态内容,错误就会自动消失。

答案 1 :(得分:17)

确保启用&#34;静态内容&#34;在IIS Windows功能中。

IIS Settings

答案 2 :(得分:2)

当您在IIS中使用重写URL时(这种情况就是这样),这是一个问题,您需要在重写输入之前在Web的web.config文件中添加此条目,如下所示:< / p>

<rule name="CSS" stopProcessing="true">
    <match url=".css" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" />
    </conditions>
    <action type="None" />
</rule>
<rule name="mod_write" stopProcessing="true">
    <match url="^(.*)$" ignoreCase="true" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="%(REQUES_FILENAME)" matchType="IsDirectory" negate="true" />
        <add input="%(REQUES_FILENAME)" matchType="IsFile" negate="true" />
    </conditions>
    <action type="Rewrite" url="index.php?url={R:1}" appendQueryString="false" />
</rule>

答案 3 :(得分:1)

亲爱的主啊!这是一个似乎无处可见的错误之一...我正在摸不着头脑,试图找出导致仅1个特定.css文件的内容,以便在Chrome中显示非常相似的消息&#39;控制台窗口:

Resource interpreted as Stylesheet but transferred with MIME type text/plain

您看到的是text/plain而不是text/html

有问题的文件就是这个:

https://raw.github.com/LPology/Bootstrap-IE7Fix/master/css/bootstrap-ie7fix.css

我在Visual Studio 2013 Ultimate中所做的是:

  • 右键单击项目的Content文件夹,然后选择添加Style Sheet
  • 将文件重命名为bootstrap-ie7fix.css
  • 复制了上述.css文件的完整内容
  • 在Visual Studio中粘贴整个内容并保存文件

在我的Razor视图的ASP.NET MVC应用中以 完全相同的旧默认方式接受 引用此新文件:

   <link rel="stylesheet" type="text/css" href="/../itvizionlogs/widgets/Content/bootstrap-ie7fix.css">

对于任何疯狂/未知原因,该文件在Chrome,Firefox,Internet Explorer中都不会显示任何内容。这个文件到底是怎么回事,因为完全相同的/Content目录中的所有其他文件加载得很好?

我的最后一次尝试是:

我猜Visual Studio最初对该文件的编码进行了加扰或类似的事情!

答案 4 :(得分:0)

我不知道你是否在框架中开发了你的项目。 当我在ThinkPHP框架中开发时,我遇到了这个错误。 原因是frameowrk有一些关于要包含的css文件路径的规则,这样如果你使用框架,你可以检查框架是否有其外部css文件或javascript文件路径的规则。 / p>

答案 5 :(得分:0)

我使用webpack-dev-server,这是因为阻止互联网访问的防火墙问题。我最初并不认为它与互联网相关,因为我认为我捆绑了所有的CSS而不依赖于外部资源。但在挖掘之后,我发现另一个css文件试图从fonts.gstatic.com加载外部字体,这与我的防火墙一起创建了我的问题。