2012-09-11 76 views
1

在我的ASP.NET MVC应用程序,我将通过以下方式CSS和JavaScript文件:SEC7113:由于MIME类型不匹配CSS被忽略了 - ASP.NET MVC

@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() 

然后模板引擎结合了所有的文件诠释o AXD文件并放入保存内容类型的页面源中。

这适用于所有浏览器,但不能在IE9中正常工作。有时,样式不被加载并出现在控制台以下错误消息:当你看看网络选项卡

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

除此之外的是,中,AXD文件被加载两次 - 2个AXD文件的CSS和2个用于JavaScript的AXD文件。每个文件权重为0个字节之一。这种情况并不总是发生,但有时甚至经常发生。

有没有人可以帮我提出问题的地方?

预先感谢您。

回答

-2

在IE9中,当原始页面不在信任区域中时,需要跨文本样式表的文本/ CSS MIME类型。当来源于信任区域时,它应该没有文本/ CSS MIME,这可能是您为什么偶尔遇到问题的原因。

所以一定要确保将contentType声明出现在你的页面指令:

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

希望是问题。

+0

您能否澄清一下您指的是哪一页? CSS文件实际上是phisical .css文件,由模板引擎构建到.axd文件中。在那种情况下,我应该在哪个页面上放置该指令?除此之外,CSS文件位于同一台服务器上,因此不存在跨域请求。 – cycero

2

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

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

如果有人仍然有这个问题。仔细检查CSS文件是否存在,并且不返回404或500.该程序也很棒。 – Joe

+0

要修复查看脱机/本地文件,请在注册表项中将内容类型更改为text/css:HKEY_CLASSES_ROOT \ .css –

相关问题