Java Tomcat提供错误的内容类型“;text/html";对于.svg资源
我将web.xml配置为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将使用提供的
<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类型字符串之间的映射
您可以在服务器配置(例如在Tomcatsconf/web.xml
)或web应用程序部署描述符中配置此映射
用于服务静态内容的servlet容器的默认servlet使用此映射设置响应的内容类型(从服务资源的文件名派生)
现在,如果有一个应用程序servlet生成响应,servlet本身负责设置内容类型。是您在.svg中提供服务的文件扩展名?可能svg资源不是由默认servlet提供的?@wero实际上我没有使用默认servlet。默认情况下,servlet是指url模式为=“/”的servlet吗?或者apache提供的DefaultServlet类?是的,我验证了该资源具有.svg扩展名。很好,答案很全面。这绝对是我的问题,谢谢。