将jetty ResourceHandler映射到URL
问题描述:
是否可以使用嵌入式Jetty来提供来自目录X的静态文件,但映射到URL Y?我有目录“网络”下存储的静态文件,但我想要的URL是像http://host/myapp
。将jetty ResourceHandler映射到URL
我已经成功地跑了ResourceHandler
在以下方式配置服务器:
ResourceHandler ctx = new ResourceHandler();
ctx.setResourceBase("path-to-web");
HandlerList list = new HandlerList();
list.addHandler(ctx);
...
server.setHandler(list);
但结果,而不是根据所需的URL映射/web
下服务的文件。
答
ResourceHandler没有上下文配置,但您可以简单地将其包装在ContextHandler中以实现该目的。
试试这个:
ResourceHandler resHandler = new ResourceHandler();
resHandler.setResourceBase("path-to-web");
ContextHandler ctx = new ContextHandler("/my-files"); /* the server uri path */
ctx.setHandler(resHandler);
server.setHandler(ctx);
,这将有助于/my-files
作为文件系统path-to-web
答
以上的码头9不起作用的ResourceHandler内容,但这:
ContextHandler contextHandler = new ContextHandler("/my-files");
contextHandler.setResourceBase("/tmp/static");
ResourceHandler resourceHandler = new ResourceHandler();
contextHandler.setHandler(resourceHandler);
server.setHandler(contextHandler);
这似乎不适用于码头9.您能否提供一些链接到某些文档? – 2015-02-05 13:54:53
我已经为jetty 9创建了一个单独的问题 - http://stackoverflow.com/questions/28346438/resourcehandler-stop-hosting-files-with-jetty-9-404-not-found-error-works-fin will be很高兴如果你给我一个提示 – 2015-02-05 14:42:46