Spring MVC(启动)不会为某些文件(WOFF等)发送MIME类型


问题内容

我正在编写一个基于Spring
Boot的应用程序,并注意到了chrome中的一些警告。它抱怨说例如网络字体(扩展名woff)以纯文本/文本而不是其正确的mime类型发送。

我对静态文件使用常规机制,而无需进行特殊配置。我发现的源代码似乎无法为“常规”
ResourceHandler添加更多的模仿类型。Resourcehandler将mime类型识别调度到servlet容器,该容器是spring-boot
1.2的默认tomcat。

我想念什么吗?有人知道一种简单的方法来增强资源映射,以使用正确的mime类型提供更多文件类型吗?

现在,我正在考虑编写一个过滤器,该过滤器针对静态内容触发,并在事后修补缺少的mimetypes。也许我应该在springsource上创建功能请求…
;-)


问题答案:

好的,我自己找到的:-)

在Spring boot中,您可以使用此定制器定制servlet容器,并在其中添加新的mimetypes。

更新

spring启动2.x:

@Component
public class ServletCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
    @Override
    public void customize(TomcatServletWebServerFactory factory) {
        MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT);
        mappings.add("woff", "application/x-font-woff");
        factory.setMimeMappings(mappings);
    }
}

spring启动1.x:

@Component
public class ServletCustomizer implements EmbeddedServletContainerCustomizer {

    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {
        MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT);
        mappings.add("woff","application/font-woff");
        mappings.add("woff2","application/font-woff2");
        container.setMimeMappings(mappings);
    }
}