解决ie9调试网页样式错误"CSS 因 Mime 类型不匹配而被忽略"

[ At 11/3/2011 By wukong   0 comments ]

用ie9的开发人员工具调试一个丢失了样式的网页时提示错误"CSS 因 Mime 类型不匹配而被忽略",究其原因是因为服务器端的页面输出是我用。net程序输出的,对于css没有进行特殊的mine头信息处理,而ie9对于css文件的mine头信息要求相对严格。

什么是Mime类型:

MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

为什么ie9不现实错误MIME类型的css文件样式:

在IE9的新安全机制中,要求web服务器返回的http 头信息中content-type必需写明css文件的MIME-type为'text/css',否则IE9不会将它作为css文件来处理。如果想要ie9也能正确的显示css文件定义的样式,需要修改服务器端返回给客户端的css文件的http header头信息中对应的mime类型。

如何修改返回的css  MIME信息:

修正css 文件的返回mime信息有不同方法,一是修改服务器配置或者服务器程序,对于css文件输出正确的mine头信息。这个要对iis设置进行操作,对于自己的服务器来说可行,但对于使用虚拟主机的站长来说就不是和容易做到了,这里就不细说了。

另一种另类方法是,通过配置web.xml文件,要求服务器输出正确的css mine信息。 [来自悟空的博客 www.7es.cn]

web.xml加入内容为

 
  1. <!--悟空博客代码 http://www.7es.cn -->
  2. <mime-mapping>
  3. <extension>css</extension>
  4. <mime-type>text/css</mime-type>
  5. </mime-mapping>

 另外对于我遇到的这种情况,所有文件都是伪静态输出的,包括css文件也是通过一个asp.net页面伪静态输出的,就可以通过修改asp.net程序代码来实现了,在返回数据时可以通过对Response对象的Headers数组进行操作,指定正确的css文件mime输出,c#代码如下:

 
  1. ////css mine特殊处理 悟空的代码 www.7es.cn
  2. if (fileext == ".css"//首先判断输出的是css文件
  3. {
  4.     Response.AddHeader("Content-Type""text/css;charset=utf-8"); //在response返回信息中加入css mime头
  5. }

通过以上方法,即可解决ie9提示错误信息“CSS 因 Mime 类型不匹配而被忽略”不正确渲染页面样式的问题了。

« android删除绑定账号终极方法godaddy支付不显示支付宝支付的解决 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By 空空如也 

Copyright 167-2009 www.7es.cn . Some Rights Reserved. Email:iamwgh@msn.com QQ:49556
Friends site:Null