ie9 SEC7113: CSS 因 Mime 類型不匹配而被忽略


今天在ie9下碰到SEC7113: CSS 因 Mime 類型不匹配而被忽的問題,很詭異,css的內容能夠讀取但是瀏覽器就是不渲染,而啟用ie8的文檔模式則正常。報錯見圖。

現已解決,方案如下:

先check了link引用的方式,發現缺少type=text/css,加上后報錯依舊。

然后根據http://blog.163.com/lihuangsuo@126/blog/static/3686389120112174544383/網上的這些文章,把mime的type類型手動加到服務器應用的web.xml下,依舊無效。

check了tomcat和jetty的conf下默認web.xml里的mime的類型是否正確,發現配置正常,但是不管是什么服務器都報錯。

 

在chrome中發現warning

發現不管是css還是js的content-type都變成了text/plain

最后檢查應用的response部分發現輸出流前缺少設置content-type

String uri = request.getRequestURI();
if(uri.matches(".+(css|js|png|ico|swf)$")) {
String assetsRoot = getVelocityProperty(AppLoader.APP_LOADER_ASSETS_PATH, "/");
byte[] bytes = FileUtils.readFileToByteArray(new File(assetsRoot + uri));
ServletOutputStream outputStream = response.getOutputStream();
IOUtils.write(bytes, outputStream);
return;
}

於是手動設置content-type

String uri = request.getRequestURI();
if(uri.matches(".+(css|js|png|ico|swf)$")) {
String assetsRoot = getVelocityProperty(AppLoader.APP_LOADER_ASSETS_PATH, "/");
byte[] bytes = FileUtils.readFileToByteArray(new File(assetsRoot + uri));
response.setContentType(MimeHandler.getContentType(FilenameUtils.getExtension(uri)));
ServletOutputStream outputStream = response.getOutputStream();
IOUtils.write(bytes, outputStream);
return;
}

問題解決。


免責聲明!

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



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