IE瀏覽器“SEC7113: CSS 因 Mime 類型不匹配而被忽略”問題的解決方法


寫好的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>
本文系作者 問說網 授權問說網發表,並經問說網編輯,轉載請注明出處和 本文鏈接
本站文章除注明轉載外,均為本站原創或翻譯,歡迎任何形式的轉載,但請務必注明出處,尊重他人勞動。
轉載請注明:文章轉載自: 問說網 » 解決IE9+中CSS因Mime類型不匹配而被忽略問題
本文標題:解決IE9+中CSS因Mime類型不匹配而被忽略問題
本文地址: http://www.uedsc.com/css-mime-type-mismatch.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM