Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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 Tomcat提供错误的内容类型“;text/html";对于.svg资源_Java_Tomcat_Svg - Fatal编程技术网

Java Tomcat提供错误的内容类型“;text/html";对于.svg资源

Java Tomcat提供错误的内容类型“;text/html";对于.svg资源,java,tomcat,svg,Java,Tomcat,Svg,我将web.xml配置为 <mime-mapping> <extension>svg</extension> <mime-type>image/svg+xml</mime-type> </mime-mapping> svg image/svg+xml 但是当我获取资源时,响应头中的内容类型设置为“text/html”。是否存在任何可能导致此行为的冲突因素?您的配置看起来是正确的。Tomcat将使用提供的

我将web.xml配置为

<mime-mapping>
    <extension>svg</extension>
    <mime-type>image/svg+xml</mime-type>
</mime-mapping>

svg
image/svg+xml

但是当我获取资源时,响应头中的内容类型设置为“text/html”。是否存在任何可能导致此行为的冲突因素?

您的配置看起来是正确的。Tomcat将使用提供的映射根据文件扩展名自动创建内容类型头。确保您所服务的资源实际上具有该文件扩展名。

ServletContext
具有一个方法
String getMimeType(String file)
,该方法提供文件扩展名和mime类型字符串之间的映射

您可以在服务器配置(例如在Tomcats
conf/web.xml
)或web应用程序部署描述符中配置此映射

用于服务静态内容的servlet容器的默认servlet使用此映射设置响应的内容类型(从服务资源的文件名派生)


现在,如果有一个应用程序servlet生成响应,servlet本身负责设置内容类型。

是您在.svg中提供服务的文件扩展名?可能svg资源不是由默认servlet提供的?@wero实际上我没有使用默认servlet。默认情况下,servlet是指url模式为=“/”的servlet吗?或者apache提供的DefaultServlet类?是的,我验证了该资源具有.svg扩展名。很好,答案很全面。这绝对是我的问题,谢谢。