zoukankan      html  css  js  c++  java
  • 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;
    }

    问题解决。

  • 相关阅读:
    Cheatsheet: 2011 09.07 ~ 09.12
    Cheatsheet: 2011 10.01 ~ 10.10
    Cheatsheet: 2011 10.11 ~ 10.17
    Cheatsheet: 2011 09.01 ~ 09.06
    Cheatsheet: 2011 09.20 ~ 09.25
    Cheatsheet: 2011 08.17 ~ 08.22
    Cheatsheet: 2011 09.13 ~ 09.19
    Cheatsheet: 2011 08.08 ~ 08.16
    Cheatsheet: 2011 09.26 ~ 09.30
    Java05文件与流——课堂测试1
  • 原文地址:https://www.cnblogs.com/xiziyin/p/2368301.html
Copyright © 2011-2022 走看看