Spring 引导提供内容类型错误的静态 .webm 和 .mp4 文件

Spring Boot serving static .webm and .mp4 files with wrong content type

我的 Spring 引导应用程序有问题,该应用程序应提供静态 .webm 和 .mp4 文件。当我将文件放在类路径的 static 文件夹中时,应用程序为它们提供内容类型 application/octet-stream 而不是 video/webm,这使得它们无法使用 <video> 标记。我试过自定义资源处理程序,但它似乎没有提供任何设置 headers 的方法。图片和其他文件工作正常。

Spring 引导输出:

$ curl -s -D - localhost:8080/CmMs.webm -o /dev/null
HTTP/1.1 200
Last-Modified: Tue, 05 Jul 2016 18:08:41 GMT
Accept-Ranges: bytes
Content-Type: application/octet-stream
Content-Length: 648708
Date: Tue, 05 Jul 2016 18:22:40 GMT

输出应有的样子

$ curl -s -D - http://webm.land/media/CmMs.webm -o /dev/null
HTTP/1.1 200 OK
Server: nginx/1.1.19
Date: Tue, 05 Jul 2016 18:23:21 GMT
Content-Type: video/webm
Content-Length: 648708
Last-Modified: Tue, 05 Jul 2016 17:42:08 GMT
Connection: keep-alive
Accept-Ranges: bytes

Anton Novopashin 的回答起到了作用。这有助于:

@Component
public class ServletCustomizer implements EmbeddedServletContainerCustomizer {

    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {
        MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT);
        mappings.add("webm", "video/webm");
        mappings.add("mp4", "video/mp4");
        container.setMimeMappings(mappings);
    }
}