2

使用Spring MVC 的 ResourceHandler很容易提供资源。

但是,有些文件,即.ico文件无法正确识别,它们没有得到正确的Content-Type标题。似乎这是由以下人员处理的ResourceHttpRequestHandler

protected MediaType getMediaType(Resource resource) {
    MediaType mediaType = null;
    String mimeType = getServletContext().getMimeType(resource.getFilename());
    if (StringUtils.hasText(mimeType)) {
        mediaType = MediaType.parseMediaType(mimeType);
    }
    if (jafPresent && (mediaType == null || MediaType.APPLICATION_OCTET_STREAM.equals(mediaType))) {
        MediaType jafMediaType = ActivationMediaTypeFactory.getMediaType(resource.getFilename());
        if (jafMediaType != null && !MediaType.APPLICATION_OCTET_STREAM.equals(jafMediaType)) {
            mediaType = jafMediaType;
        }
    }
    return mediaType;
}

那么如何在 Spring Boot 1.2 中配置可识别的文件扩展名/MIME 类型呢?(对于 Tomcat 和 Undertow)

4

1 回答 1

4

CustomizableEmbeddedServletContainerFactory有一种设置 mime 类型的方法。您可以通过提供 type 的 bean 来获得回调EmbeddedServletContainerCustomizer

于 2014-12-27T15:35:50.133 回答