我遇到了Spring Boot应用程序的问题,该应用程序应该提供静态的.webm和.mp4文件。当我将文件放在类路径上的static
文件夹中时,应用程序会使用内容类型application/octet-stream
而不是video/webm
为它们提供服务,这使得它们无法使用<video>
标记。我尝试过自定义资源处理程序,但它似乎没有提供任何设置标头的方法。图像和其他文件工作正常。
Spring Boot输出:
$ 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
答案 0 :(得分:1)
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);
}
}