IE9 CSS因Mime類型不匹配而被忽略問題相關解答

寫頁面的時候在chrome,fireforks等頁面上顯示正常,但是換成IE9之后就完全沒有樣式了 。IE真是個奇葩的怪胎 。它的報錯信息是CSS 因 Mime 類型不匹配而被忽略,也就是說所有的.css文件全部都不起效果了 。去網上查了一些資料,有很多與這個問題相關的回答 。

首先要明白Mine類型是個什么 。MIME類型就是設定某種指定擴展名的文件用一種應用程序來打開的方式類型,當該擴展名文件被訪問的時候,瀏覽器會自動使用指定應用程序來打開 , 多用于指定一些客戶端自定義的文件名,以及一些媒體文件打開方式 。與之相關主要的是web.xml文件 。web.xml 是網絡程序中的一個很重要的配置文件 。當啟動一個WEB項目的時候,WEB容器會去讀取它的配置文件web.xml,讀取listener和context-param這兩個結點 。

而在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信息 。

在web.xml加入內容:

復制代碼代碼如下:
mime-mapping
extensioncss/extension
mime-typetext/css/mime-type
/mime-mapping

相關經驗推薦