具有单页应用程序的嵌入式码头
Embedded jetty with singe page application
我有一个嵌入式 Jetty 服务器提供静态文件(html、图像、css、javascript)...
index.html 是单页应用程序。
如果调用特定路径,我如何配置嵌入式 Jetty 以服务 index.html...例如:
- http://some.server.com/ -> returns index.html
- http://some.server.com/path -> returns index.html
- http://some.server.com/other/path -> returns index.html
- http://some.server.com/images/image.jpg -> returns image.jpg
好的,这是我想出的解决方案……不确定它是否最优雅,但它确实有效。
ServletContextHandler servletContextHandler = new ServletContextHandler(server, "/", ServletContextHandler.SESSIONS);
servletContextHandler.setContextPath("/");
servletContextHandler.setWelcomeFiles(new String[] { "index.html" });
servletContextHandler.setResourceBase(webDir);
servletContextHandler.addServlet(DefaultServlet.class, "/");
ErrorPageErrorHandler errorHandler = new ErrorPageErrorHandler();
errorHandler.addErrorPage(404, "/"); // return root ... being index.html
servletContextHandler.setErrorHandler(errorHandler);
我宁愿用某种模式来处理这个问题,而不是对 404 做出反应...
我有一个嵌入式 Jetty 服务器提供静态文件(html、图像、css、javascript)...
index.html 是单页应用程序。
如果调用特定路径,我如何配置嵌入式 Jetty 以服务 index.html...例如:
- http://some.server.com/ -> returns index.html
- http://some.server.com/path -> returns index.html
- http://some.server.com/other/path -> returns index.html
- http://some.server.com/images/image.jpg -> returns image.jpg
好的,这是我想出的解决方案……不确定它是否最优雅,但它确实有效。
ServletContextHandler servletContextHandler = new ServletContextHandler(server, "/", ServletContextHandler.SESSIONS);
servletContextHandler.setContextPath("/");
servletContextHandler.setWelcomeFiles(new String[] { "index.html" });
servletContextHandler.setResourceBase(webDir);
servletContextHandler.addServlet(DefaultServlet.class, "/");
ErrorPageErrorHandler errorHandler = new ErrorPageErrorHandler();
errorHandler.addErrorPage(404, "/"); // return root ... being index.html
servletContextHandler.setErrorHandler(errorHandler);
我宁愿用某种模式来处理这个问题,而不是对 404 做出反应...