【问题标题】:Path to static content with Embedded JettyEmbedded Jetty 的静态内容路径
【发布时间】:2015-06-13 23:49:48
【问题描述】:

我正在使用嵌入式 Jetty 从我的项目中的“公共”文件夹中提供静态内容:

    Server server = new Server(9999);
    ServletContextHandler context = new ServletContextHandler();
    context.setContextPath("/");

    ServletHolder staticHolder = new ServletHolder(new DefaultServlet());
    staticHolder.setInitParameter("resourceBase", "./public");
    context.addServlet(staticHolder, "/*");

    server.setHandler(context);
    server.start();
    server.join();

效果很好。但是,如果我改变了

    context.addServlet(staticHolder, "/*");

   context.addServlet(staticHolder, "/ui/*");

   context.addServlet(staticHolder, "/ui");

或除“/*”以外的任何内容我得到 404。基本上我可以在 http://127.0.0.1:9999/index.html 看到我的索引页,我想将其更改为 http://127.0.0.1:9999/ui/index.html

谢谢

【问题讨论】:

  • 注意前面的回答pathInfoOnly
  • 这就是我需要的代码!我不认为这是重复的,因为我的问题是专门关于路径的。

标签: java jetty embedded-jetty


【解决方案1】:

这里发布:

Serving static files from alternate path in embedded Jetty

我需要补充:

staticHolder.setInitParameter("pathInfoOnly", "true");

这让我可以修改路径并使其正常运行:

context.addServlet(staticHolder, "/ui/*");

允许访问http://127.0.0.1:9999/ui/index.html 的静态内容

谢谢!

【讨论】:

    【解决方案2】:

    很好的答案雪崩。 此外,如果您提供静态内容,您应该添加
    staticHolder.setInitParameter("useFileMappedBuffer", "true"); 避免Locked Files on Windows

    【讨论】:

      猜你喜欢
      • 2018-02-12
      • 1970-01-01
      • 2019-09-29
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      相关资源
      最近更新 更多