代码之家  ›  专栏  ›  技术社区  ›  Gana

拒绝应用样式,因为其mime类型“text/html”不受支持样式表mime类型,并且启用了严格的mime检查

  •  3
  • Gana  · 技术社区  · 6 年前

    我们间歇性地面临这一问题,而且并非始终如一。而且,这种情况发生在少数用户身上,而不是所有用户身上(我不知道这是否与地区有关)。出现此问题时,页面无法正确加载。在几次刷新尝试之后,页面将正确加载,其他所有内容将按预期工作。

    所有资源(.js&.css文件)的URL路径都是准确的。 <script src=“$pageContext.request.contextPath/static/js/jquery/jquery.min.js”type=“text/javascript”></script> <script src=“$pageContext.request.contextPath/static/js/jquery/jquery.slimscroll.min.js”type=“text/javascript”></script>

    提前感谢您的建议。

      <extension>JS</extension> </mime映射> <扩展名>css</extension>
      
      </mimetypes>
      
      

      除此之外,我们经常在浏览器中发现mime类型不匹配。webmasters团队声称应用程序服务器必须发送错误的内容,而没有任何合理的信息。

    • 编辑2: 下面是我得到的回应。当我运行循环100次时,它始终返回相同的响应。

    • X-背面传输:正常 日期:2018年6月19日星期二10:38:25格林尼治标准时间
      
      
      response.setheader(“pragma”,“no cache”);//http 1.0。
      
      
      
      

      enter image description here enter image description here

              <link rel="stylesheet" href="${pageContext.request.contextPath}/static/css/bootstrap/bootstrap.min.css" type="text/css" />
          <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/css/jquery/jquery-ui.css" type="text/css" />
      
          <script src="${pageContext.request.contextPath}/static/js/jquery/jquery.min.js" type="text/javascript" ></script>
          <script src="${pageContext.request.contextPath}/static/js/bootstrap/bootstrap.min.js" type="text/javascript"></script>   
          <script src="${pageContext.request.contextPath}/static/js/jquery/jquery.slimscroll.min.js" type="text/javascript"></script>
          <script src="${pageContext.request.contextPath}/static/js/jquery/jquery.dataTables.min.js" type="text/javascript"> </script>
      

      根据我的理解,请求流的工作方式类似于这个小图。

      enter image description here

      根据网站管理员的说法,问题出在应用程序的代码中。我在代码中看到的是.jsp文件中每个.js/.css文件的类型。我看到的是浏览器不接受来自网站管理员的响应。当我们保持

      • 在web.xml中添加了mimetype,如下所示:

        <mime-mapping>    
            <extension>js</extension>        
            <mime-type>application/javascript</mime-type>        
        </mime-mapping>
        <mime-mapping>    
            <extension>css</extension>        
            <mime-type>text/css</mime-type>        
        </mime-mapping>
        

      <mimeTypes>
          <type>js=application/javascript</type>
          <type>css=text/css</type>
      </mimeTypes>
      

      除此之外,我们经常在浏览器中发现mime类型不匹配。webmasters团队声称应用服务器发送的内容一定是错误的,没有任何合理的信息。

      HTTP/1.1 200 OK 
      X-Backside-Transport: OK OK  
      Content-Language: en-US
      Content-Length: 168517
      **Content-Type: application/javascript**  
      Date: Tue, 19 Jun 2018 10:38:25 GMT 
      Last-Modified: Tue, 29 May 2018 17:04:10 GMT 
      X-Powered-By: Servlet/3.1 
      X-Global-Transaction-ID: 1178221711
      Connection: close
      

      当网站管理员建议过时的缓存可能会产生此类问题时,缓存将从其一侧禁用。我还编写了服务器端代码以确保缓存被禁用。下面是供参考的代码段:

      response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
      response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
      response.setHeader("Expires", "0"); // Proxies.
      

    2 回复  |  直到 6 年前
        1
  •  1
  •   John    6 年前

    设置

    application/javascript

    .htaccess

    AddType text/css .css
    AddType application/javascript .js
    

    有时人们使用Apache重写或其他高级方法,偶尔也没有任何文件扩展名。mime类型可以单独添加到文件中。

    header('Content-Type: text/css; charset=UTF-8');//Use only in .css files.
    header('Content-Type: application/javascript; charset=UTF-8');//Use only in .js files.
    

    如果出于某种原因,您需要在 .css

    AddType application/x-httpd-php5 .css .html
    

    必须先发送

    此外,您发布的XML不会对服务器请求的任何内容产生任何影响(除非在某个地方声明这是亚马逊服务器正式支持的内容)。

        2
  •  0
  •   Gana    6 年前

    我已经缩小了每个css和.js文件,并在jsp文件中添加了它们。