使用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)