Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC Jboss IE 11,谁负责设置内容类型_Java_Spring Mvc_Internet Explorer_Jboss_Mime - Fatal编程技术网

Java Spring MVC Jboss IE 11,谁负责设置内容类型

Java Spring MVC Jboss IE 11,谁负责设置内容类型,java,spring-mvc,internet-explorer,jboss,mime,Java,Spring Mvc,Internet Explorer,Jboss,Mime,我有一个SpringMVC应用程序,它引用了一个名为fancytree的js库,其中包含js文件和css文件。fancytree中的css文件指的是gif图像 现在,应用程序部署在JBoss服务器上。当尝试访问gif图像时,IE 11获得200,但内容类型为image/png 然而,在chrome上,它是image/webp 我试过了 1) 在web.xml中设置mime映射,但这不起作用 <mime-mapping> <extension>gif<

我有一个SpringMVC应用程序,它引用了一个名为fancytree的js库,其中包含js文件和css文件。fancytree中的css文件指的是gif图像

现在,应用程序部署在JBoss服务器上。当尝试访问gif图像时,IE 11获得200,但内容类型为image/png

然而,在chrome上,它是image/webp

我试过了

1) 在web.xml中设置mime映射,但这不起作用

  <mime-mapping>
      <extension>gif</extension>
      <mime-type>image/gif</mime-type>
 </mime-mapping>

 <mime-mapping>
      <extension>html</extension>
      <mime-type>text/html</mime-type>
 </mime-mapping>
3) 更改MVC配置

@Override
   public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
  configurer.favorPathExtension(false).
          favorParameter(true).
          parameterName("mediaType").
          ignoreAcceptHeader(true).
          useJaf(false).
          defaultContentType(MediaType.APPLICATION_JSON).
          mediaType("xml", MediaType.APPLICATION_XML).
          mediaType("json", MediaType.APPLICATION_JSON).
          mediaType("gif", MediaType.IMAGE_GIF).
          mediaType("png", MediaType.IMAGE_PNG);
}
4) 在JBoss standalone.xml中设置全局mime映射

<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
        <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
        <virtual-server name="default-host" enable-welcome-root="false">
            <alias name="localhost"/>
            <alias name="example.com"/>
        </virtual-server>
        <configuration>
            <mime-mapping name="gif" value="image/gif" />
            <mime-mapping name="png" value="image/png" />
            <mime-mapping name="html" value="text/html" />
        </configuration>
</subsystem>

所有这些力都起作用


我的问题是谁负责设置MIME类型,是浏览器还是web服务器。如果web服务器负责在尝试设置mime类型时我做错了什么,那么在IE 11中它总是返回一个内容类型image/png

Hi,听起来服务器端代码在使用UserAgent嗅探。然而。。。MSIE浏览器不支持webp格式,因此您所看到的是预期的。您可以使用IE开发工具的仿真选项卡来选择不同的UAS以在请求头中发送(并找出您当前使用的IE仿真模式),这通常是您在本地主机上开发的。使用IE中的“文件”>“属性”菜单确定localhost是否映射到您的IE INtranet区域,然后使用开发工具的“仿真”选项卡确定哪个IE仿真(和UAS)IE正在该区域中使用以及它是如何建立的…通常请参见Internet选项>Intranet Sites>Advanced button>从列表中删除localhost的Security选项卡,这样您的开发环境将映射到Internet区域,并使用“Edge”仿真模式,并在标头中发送不可知的UAS字符串…服务器仍将发送UserAgent的webp这支持这种格式。嗨,听起来服务器端代码正在使用UserAgent嗅探。然而。。。MSIE浏览器不支持webp格式,因此您所看到的是预期的。您可以使用IE开发工具的仿真选项卡来选择不同的UAS以在请求头中发送(并找出您当前使用的IE仿真模式),这通常是您在本地主机上开发的。使用IE中的“文件”>“属性”菜单确定localhost是否映射到您的IE INtranet区域,然后使用开发工具的“仿真”选项卡确定哪个IE仿真(和UAS)IE正在该区域中使用以及它是如何建立的…通常请参见Internet选项>Intranet Sites>Advanced button>从列表中删除localhost的Security选项卡,这样您的开发环境将映射到Internet区域,并使用“Edge”仿真模式,并在标头中发送不可知的UAS字符串…服务器仍将发送UserAgent的webp它支持这种格式。
<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
        <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
        <virtual-server name="default-host" enable-welcome-root="false">
            <alias name="localhost"/>
            <alias name="example.com"/>
        </virtual-server>
        <configuration>
            <mime-mapping name="gif" value="image/gif" />
            <mime-mapping name="png" value="image/png" />
            <mime-mapping name="html" value="text/html" />
        </configuration>
</subsystem>