如何为 Spring Boot/MVC 资源设置可识别的内容/MIME 类型



使用 Spring MVC 的资源处理程序,很容易提供资源。

但是,某些文件,即 .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 类型呢?(对于雄猫和暗流)

CustomizableEmbeddedServletContainerFactory有一个设置MIME类型的方法。您可以通过提供类型 EmbeddedServletContainerCustomizer 的 bean 来获取回调。

相关内容

  • 没有找到相关文章

最新更新