【问题标题】:Resource interpreted as Stylesheet but transferred with MIME type text/html in ASP.NET IIS资源解释为样式表,但在 ASP.NET IIS 中使用 MIME 类型 text/html 传输
【发布时间】:2011-08-30 15:37:45
【问题描述】:

执行时我有一个登录页面,该页面从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 的建议进行了编辑。

【问题讨论】:

  • 我想有一个 css 表被调用,其中
  • 实际上css在单独的文件中,如果需要我会发布页面代码。
  • 我很清楚它是一个单独的文件,这就是为什么我说这听起来像是用
  • 这是该页面的标题部分 CalibPro --%>
  • 你为什么不直接编辑你的帖子并把它放在那里。每个人都更容易看到。

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


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 我正在使用 Windows 7,你能解释一下如何做到这一点吗?
  • 如果您使用 IIS,您只需在开始菜单的“搜索程序和文件”字段中输入 iis。第一个结果将是 IIS 管理器。在左侧窗格树中,选择您的网站,然后在中心面板的图标中查找“MIME 类型”。
  • 好的,但我不知道到底发生了什么,从昨天开始页面开始正常工作,我试图重复这个问题,但无法做到,所以我必须等待,再等一次。无论如何感谢@variant 和@robx,我将变体标记为答案。
  • 为我工作!谢谢你:)
  • 也为我工作 - 严肃的问题,为什么 IIS 未配置为 default 提供静态内容?
【解决方案2】:

确保在 IIS Windows 功能中启用“静态内容”。

【讨论】:

  • IIS windows 功能在哪里?我在 Windows 服务器上有 IIS,我似乎找不到它。
  • 这只是“打开或关闭 Windows 功能”,您会在其中找到这些 IIS 设置。您使用的是什么版本的 Windows?您是否尝试从开始菜单中搜索“Windows 功能”?
【解决方案3】:

当您在 IIS 中使用 rewrite url 时,这是一个问题(在我的情况下是这样),您需要在 rewrite 条目之前在您的 web.config 文件中添加此条目,如下所示:

<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>

【讨论】:

  • 非常感谢!经过数小时的搜索和尝试所有可能的解决方案,这解决了我的问题!这与我试图重写目录索引但实际上是重定向整个文件夹而不是一个文件的事实有关。谢谢!
【解决方案4】:

亲爱的主啊!这是那些似乎不知从何而来的错误之一......我花了将近 1 小时的时间试图确定是什么导致只有 1 个特定的 .css 文件在 Chrome 的控制台窗口中显示非常相似的消息:

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 中并保存文件

ASP.NET MVC 应用程序的Razor 视图中以完全相同的老式默认接受方式引用了这个新文件:

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

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

我最后一次尝试是这样的:

我猜 Visual Studio 最初会打乱该文件的编码或类似的东西!

【讨论】:

    【解决方案5】:

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        猜你喜欢
        • 2013-05-04
        • 2012-05-20
        • 2014-11-19
        • 2011-12-13
        • 2017-10-12
        • 2016-03-19
        • 2021-04-25
        • 1970-01-01
        • 2017-02-23
        相关资源
        最近更新 更多