是否可以使用嵌入式Jetty从目录X提供静态文件,但将其映射到URL Y?我将静态文件存储在目录“web”下,但是我希望URL类似于http://host/myapp

我已经通过以下方式成功运行了配置了ResourceHandler的服务器:

ResourceHandler ctx = new ResourceHandler();
ctx.setResourceBase("path-to-web");
HandlerList list = new HandlerList();
list.addHandler(ctx);
...
server.setHandler(list);

但是结果是在/web下而不是在所需的URL映射下提供文件。

最佳答案

ResourceHandler没有可配置的上下文,但是您只需将其包装在ContextHandler中即可实现。

尝试以下方法:

ContextHandler ctx = new ContextHandler("/my-files"); /* the server uri path */
ResourceHandler resHandler = new ResourceHandler();
resHandler.setResourceBase("path-to-web");
ctx.setHandler(resHandler);
server.setHandler(ctx);

它将/my-files用作文件系统path-to-web的ResourceHandler内容

10-06 11:56