将jetty ResourceHandler映射到URL
是否可以使用嵌入式Jetty提供来自目录X但映射到URL Y的静态文件?我有静态文件存储在目录“web”下,但我希望URL类似于将jetty ResourceHandler映射到URL,jetty,embedded-jetty,Jetty,Embedded Jetty,是否可以使用嵌入式Jetty提供来自目录X但映射到URL Y的静态文件?我有静态文件存储在目录“web”下,但我希望URL类似于http://host/myapp 我已经通过以下方式成功运行了配置了ResourceHandler的服务器: ResourceHandler ctx=newresourcehandler(); setResourceBase(“web路径”); HandlerList=新的HandlerList(); addHandler(ctx); ... setHandler(列
http://host/myapp
我已经通过以下方式成功运行了配置了ResourceHandler
的服务器:
ResourceHandler ctx=newresourcehandler();
setResourceBase(“web路径”);
HandlerList=新的HandlerList();
addHandler(ctx);
...
setHandler(列表);
但是结果是在
/web
下提供文件,而不是在所需的URL映射下提供文件。ResourceHandler没有可配置的上下文,但您可以简单地将其包装在ContextHandler中实现这一点
请尝试以下方法:
ContextHandler ctx=newcontexthandler(“/myfiles”);/*服务器uri路径*/
ResourceHandler resHandler=新的ResourceHandler();
setResourceBase(“web路径”);
setHandler(resHandler);
setHandler(ctx);
它将
/my files
作为文件系统web路径的ResourceHandler内容上述内容不适用于Jetty 9,但它确实适用于:
ContextHandler contextHandler = new ContextHandler("/my-files");
contextHandler.setResourceBase("/tmp/static");
ResourceHandler resourceHandler = new ResourceHandler();
contextHandler.setHandler(resourceHandler);
server.setHandler(contextHandler);
这似乎不适用于jetty 9。你能提供一些文档的链接吗?我已经为jetty 9创建了一个单独的问题-如果你给我一个提示,我会很高兴的