【问题标题】:Spring MVC (Boot) does not send MIME type for certain files (WOFF, etc)Spring MVC(引导)不发送某些文件的 MIME 类型(WOFF 等)
【发布时间】:2015-02-21 09:55:10
【问题描述】:

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

我对静态文件使用常规机制,无需特殊配置。 我发现的源代码看起来不可能为“stock”ResourceHandler 添加更多的 mimetypes。 Resourcehandler 将 mime 类型识别分派给 servlet 容器,这是 spring-boot 1.2 的默认 tomcat。

我错过了什么吗?有人知道一种简单的方法来增强资源映射以提供更多具有正确 mime 类型的文件类型吗?

现在我正在考虑编写一个过滤器,用于触发静态内容并在事后修补缺失的 mimetype。也许我应该在 springsource 创建一个功能请求... ;-)

【问题讨论】:

    标签: spring-mvc mime-types spring-boot embedded-tomcat-8


    【解决方案1】:

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

    在 Spring boot 中,您可以使用此自定义程序自定义 servlet 容器并在其中添加新的 mimetype。

    更新

    Spring-boot 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-boot 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);
        }
    }
    

    【讨论】:

    • 我对我的应用程序做了同样的事情,设置了 js 和 css 类型,但由于某种原因仍然得到不正确的 mime 类型。有关如何确保其正常工作的任何建议?
    • js 和 css 应该开箱即用!你确定你没有错误配置spring MVC?
    • 你是对的。我把它配置得很糟糕。它实际上是获取登录页面而不是 JS 和 CSS 文件,因此会出现 mime 类型错误。
    • 感谢 Anton 对 woff2 的改进
    • 嵌入的tomcat8标签存在。 (而且大多数 spring-boot 应用程序都使用嵌入式容器)
    猜你喜欢
    • 2014-09-17
    • 1970-01-01
    • 2011-04-05
    • 2012-09-20
    • 2011-03-29
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    相关资源
    最近更新 更多