2012-09-11 72 views
1

在我的ASP.NET MVC應用程序,我將通過以下方式CSS和JavaScript文件:SEC7113:由於MIME類型不匹配CSS被忽略了 - ASP.NET MVC

@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() 

然後模板引擎結合了所有的文件詮釋o AXD文件並放入保存內容類型的頁面源中。

這適用於所有瀏覽器,但不能在IE9中正常工作。有時,樣式不被加載並出現在控制檯以下錯誤消息:當你看看網絡選項卡

SEC7113: CSS was ignored due to mime type mismatch 
scripts.axd?type=Stylesheet&hash=74A0F67DE9D74AFCDAE1AA539EA11099 

除此之外的是,中,AXD文件被加載兩次 - 2個AXD文件的CSS和2個用於JavaScript的AXD文件。每個文件權重爲0個字節之一。這種情況並不總是發生,但有時甚至經常發生。

有沒有人可以幫我提出問題的地方?

預先感謝您。

回答

-2

在IE9中,當原始頁面不在信任區域中時,需要跨文本樣式表的文本/ CSS MIME類型。當來源於信任區域時,它應該沒有文本/ CSS MIME,這可能是您爲什麼偶爾遇到問題的原因。

所以一定要確保將contentType聲明出現在你的頁面指令:

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

希望是問題。

+0

您能否澄清一下您指的是哪一頁? CSS文件實際上是phisical .css文件,由模板引擎構建到.axd文件中。在那種情況下,我應該在哪個頁面上放置該指令?除此之外,CSS文件位於同一臺服務器上,因此不存在跨域請求。 – cycero

2

由於MIME類型不匹配css在ie 9和10中被忽略.MIME類型可以通過稱爲FIle TypesMan的實用程序更正它是由NirSoft創建的免費軟件。事實證明,.css的MIME類型已被更改爲text/plain,從而防止呈現我的樣式。使用FileTypesMan將其更改回文本/ css修復了問題。

  1. 從NirSoft網站下載FileTypesMan。使用頁面底部附近的鏈接爲您的操作系統選擇正確的版本(針對32位,64位和Windows 98/ME有不同的版本)。
  2. 將文件解壓縮到本地文件夾,然後雙擊FileTypesMan.exe。
  3. 當FileTypesMan完成列出所有文件類型時,向下滾動到頂部窗格以查找.css。
  4. 雙擊編輯設置。
  5. 在打開的對話框的MIME類型字段中將值更改爲text/css。
  6. 單擊確定。任務完成。 IE 10現在應該表現自己(至少就渲染樣式表而言)。
+0

如果有人仍然有這個問題。仔細檢查CSS文件是否存在,並且不返回404或500.該程序也很棒。 – Joe

+0

要修復查看脫機/本地文件,請在註冊表項中將內容類型更改爲text/css:HKEY_CLASSES_ROOT \ .css –

相關問題