我正在使用嵌入式 Jetty 从我的项目中的“public”文件夹中提供静态内容:
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 .
谢谢
最佳答案
正如这里发布的:
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 的静态内容
谢谢!
关于java - 使用嵌入式 Jetty 访问静态内容的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29524506/