1

在我的 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 文件被加载了两次——2 个 AXD 文件用于 CSS,2 个 AXD 文件用于 JavaScript。每个文件之一的权重为 0 字节。这种情况并不总是发生,但只是有时,但过于频繁。

有人可以帮助我就问题所在提供建议吗?

事先谢谢你。

4

2 回答 2

2

由于 MIME 类型不匹配 css 在 ie 9 和 10 中被忽略。MIME 类型可以通过名为FIle TypesMan的实用程序来正确它是由 NirSoft 创建的免费软件。事实证明,.css 的 MIME 类型已更改为 text/plain,从而阻止了 ie 渲染我的样式。使用 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 现在应该表现自己(好吧,至少就呈现样式表而言)。
于 2013-09-13T17:23:08.567 回答
-2

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

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

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

希望这就是问题所在。

于 2012-09-11T20:20:37.387 回答