9

是否可以使用嵌入式 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);

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

4

2 回答 2

20

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作为文件系统的 ResourceHandler 内容path-to-web

于 2013-02-19T16:17:24.423 回答
2

以上不适用于 Jetty 9,但可以:

ContextHandler contextHandler = new ContextHandler("/my-files");
contextHandler.setResourceBase("/tmp/static");

ResourceHandler resourceHandler = new ResourceHandler();
contextHandler.setHandler(resourceHandler);

server.setHandler(contextHandler);
于 2015-01-05T18:51:18.733 回答