SEC7113:由于mime类型不匹配而忽略了CSS - ASP.NET MVC

时间:2012-09-11 19:36:43

标签: asp.net asp.net-mvc asp.net-mvc-3 razor

在我的ASP.NET MVC应用程序中,我以下列方式添加CSS和JavaScript文件:

@Script.AddCss("~/Content/css/style2.css", siteWide: true)
@Script.AddCss("~/Content/css/tipsy.css", siteWide: true)

@Script.AddJavaScript(localPath: "~/Content/js/modernizr-2.5.3.js", siteWide: true)
@Script.AddJavaScript(localPath: "~/Content/js/jquery/jquery.datatables.js", siteWide: true)

输出如下所示:

@Script.OutputCss()

对于JavaScript几乎相同:

@Script.OutputJavaScript()

然后模板引擎将所有文件合并到AXD文件中,并放入保留内容类型的页面源。

这适用于所有浏览器,但不适用于IE9。有时样式表未加载,并且控制台中显示以下错误消息:

SEC7113: CSS was ignored due to mime type mismatch 
scripts.axd?type=Stylesheet&hash=74A0F67DE9D74AFCDAE1AA539EA11099

除此之外,当您查看“网络”选项卡时,AXD文件将被加载两次 - 两个用于CSS的AXD文件和用于JavaScript的两个AXD文件。每个文件中的一个加权0个字节。这种情况并非总是如此,但有时只是偶尔发生。

有人可以帮我解决问题所在吗?

事先谢谢你。

2 个答案:

答案 0 :(得分:2)

由于MIME类型不匹配,在9和10中忽略了css。通过名为FIle TypesMan的实用程序可以更正MIME类型。它是由NirSoft创建的免费软件。事实证明,.css的MIME类型已更改为text / plain,从而阻止了渲染我的样式。使用FileTypesMan将其更改回text / css修复了问题。

  1. 从NirSoft网站下载FileTypesMan。使用页面底部附近的链接为您的操作系统选择正确的版本(32位,64位和Windows 98 / ME有不同的版本)。
  2. 将文件解压缩到本地文件夹,然后双击FileTypesMan.exe。
  3. 当FileTypesMan完成列出所有文件类型后,在顶部窗格中向下滚动以查找.css。
  4. 双击以编辑设置。
  5. 在打开的对话框的“MIME类型”字段中将值更改为text / css。
  6. 单击“确定”。任务完成。 IE 10现在应该表现得很好(至少就渲染样式表而言)。

答案 1 :(得分:-2)

在IE9中,当原始页面不在受信任区域时,您需要跨域样式表的文本/ CSS MIME类型。当它来自受信任区域时,它应该在没有text / CSS MIME的情况下工作,这可能是你有时只遇到问题的原因。

因此,请确保您的页面指令中存​​在ContentType声明:

<%@ Page Language="C#" ContentType="text/css" %> 

希望这是个问题。