寫好的CSS文件使用IE瀏覽器不加載,但使用火狐等瀏覽器卻能夠正常顯示。讀了這篇文章的方法2才知道,使用ie本地直接打開則調用file協議時CSS不加載,把所寫的文件放入本地Apache服務器內,再用ie打開調用http協議,顯示正常,問題解決。
原帖位置:http://www.uedsc.com/css-mime-type-mismatch.html
什么是Mime類型?
MIME(Multipurpose Internet Mail Extensions)多用途互聯網郵件擴展類型就是設定某種擴展名的文件用一種應用程序來打開的方式類型,當該擴展名文件被訪問的時候,瀏覽器會自動使用指定應用程序來打開。多用於指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。
為什么會出現錯誤?
在IE9以上的IE瀏覽器中,尤其是本地環境下,在沒有配置服務器的環境下,會遇到外鏈的CSS文件無法加載成功,而導致想要的效果沒有實現!當你遇到這樣的問題是,你在IE自帶的調試工具里的控制台里會看到“SEC7113:CSS因Mime類型不匹配而被忽略”的錯誤提示。
微軟從IE9之后添加了文件名識別的程序,這是在IE9以上的標准模式下才會出現的,在兼容模式下就沒有問題。
解決方法
既然知道這個錯誤的原因,那么我們就可以針對性的解決這個問題,以下包含了檢測的步驟和方法,你可以根據你實際的情況跳過某些步驟。
1、檢測Link標簽
Link標簽是我們引入樣式表的標簽,查看下是否缺少type=text/css屬性,完整的Link標簽示例。
<link rel=stylesheet type=text/css href="style.css">
如果你發現加上以后沒有效果,那么接着往下看。
2、靜態頁面無法顯示樣式
其實很多人遇到這個問題都是在本地直接使用瀏覽器打開網頁,也就是沒有通過http:協議的方式瀏覽頁面,而是通過file:協議打開網頁。而CSS無法返回正確的Mime,可能由於你的系統的原因。
進入注冊表編輯器,查看 HKEY_CLASSES_ROOT\.css 里面的 Content Type 是否是 text/css。
3、服務器環境無法顯示樣式
在服務器環境中無法顯示樣式,不管是本地還是遠程,解決的方法都是一樣的,既然服務器不能返回正確的文檔類型,我們就需要手動配置。
IIS服務器
對於IIS服務器通過配置web.xml文件,要求服務器輸出正確的CSS Mine信息。
<mime-mapping> <extension>css</extension> <mime-type>text/css</mime-type> </mime-mapping>
Apache服務器
當web服務器想瀏覽器發送文檔時,它會給文檔加上一個響應報頭作為前綴,此報頭包含了用於告訴瀏覽器如何解釋文檔的數據,元數據的一個最重要的部分是最后一行中的Content-Type。它將告訴瀏覽器如何呈現內容。例如瀏覽器用於顯示 JPEG 和 GIF 的代碼是不同的。
而這里我們需要正確的配置CSS文件的Content-Type,在Apache的安裝目錄下有一個conf文件夾,里面的mime.types文件就是響應報頭文檔類型配置。
添加一下代碼到mime.types文件中,然后重啟Apache服務器。
text/css css
如果還是不行,試着添加一下代碼到httpd.conf文件中,加載mime.types配置文件。
<IfModule mime_module> TypesConfig conf/mime.types </IfModule>