Jetty 9.4.6 不发送 mp4 的内容类型

Jetty 9.4.6 is not sending content type for mp4

我是 运行 Jetty 9.2 并添加了一个明确的 mime 类型,它在将电影发送回客户端时设置 mp4 的内容类型。这很好用。然后我不得不升级到 Jetty 9.4.6 并将 AcceptRanges 设置为 true 以便我可以让 Safari 播放 mp4。这也很好用。但是,由于应用了升级,mp4 的内容类型不再发送回客户端。为什么 ?

  // Add a handler for statically served content
  ResourceHandler resourceHandler = new ResourceHandler();

  MimeTypes mimeTypes = new MimeTypes();
  mimeTypes.addMimeMapping("mp4", "video/mp4");
  resourceHandler.setMimeTypes(mimeTypes);

  resourceHandler.setAcceptRanges(true);
  resourceHandler.setResourceBase("content");
  handlerCollection.addHandler(resourceHandler);

  // This handle will deal with unhandled requests in the server. For requests for favicon.ico, the Jetty icon is served. 
  // For all other requests a normal 404 is served.
  handlerCollection.addHandler(new DefaultHandler());

归档Issue #1823eclipse/jetty.项目

Jetty 的家伙们回来了,有一个解决方法,bug 将在未来得到修复。以下作品

  // Add a handler for statically served content
  ResourceHandler resourceHandler = new ResourceHandler();
  resourceHandler.setAcceptRanges(true);
  resourceHandler.setResourceBase("content");

  // Create a content handler, add the above resource handler and add a mime type for mp4
  ContextHandler context = new ContextHandler("/");
  context.setHandler(resourceHandler);
  MimeTypes mimeTypes = new MimeTypes();
  mimeTypes.addMimeMapping("mp4", "video/mp4");
  context.setMimeTypes(mimeTypes);

  HandlerList handlers = new HandlerList();
  handlers.addHandler(context);

  // This handle will deal with unhandled requests in the server. For requests for favicon.ico, the Jetty icon is served. 
  // For all other requests a normal 404 is served.
  handlers.addHandler(new DefaultHandler());