【问题标题】:Map jetty ResourceHandler to a URL将 jetty ResourceHandler 映射到 URL
【发布时间】:2013-02-19 13:05:26
【问题描述】:

是否可以使用嵌入式 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 映射下。

【问题讨论】:

    标签: jetty embedded-jetty


    【解决方案1】:

    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 内容提供服务

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 这似乎不适用于 jetty 9。您能否提供一些文档的链接?
      • 我为 9 号码头创建了一个单独的问题 - stackoverflow.com/questions/28346438/… 如果你能给我一个提示,我会很高兴
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 2012-11-23
      • 2016-10-14
      • 2015-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多