2015-06-05 2 views
3

В настоящее время я создаю приложение с помощью dropwizard и angularjs. Я имею установку мой AssetsBundle так:Dropwizard, обслуживающий статический html

bootstrap.addBundle(new AssetsBundle("/assets", "/", "index.html")); 

Мой текущий вопрос в том, что я хочу несколько страниц, чтобы служить моей странице index.html (главное angularjs приложение страницы). В любом случае, я могу определить набор URL-адресов для всех, которые служат этому файлу index.html? Если я создаю несколько комплектов активов это будет работать, однако это не так, как это должно быть сделано:

bootstrap.addBundle(new AssetsBundle("/assets", "/login", "index.html", "login")); 
    bootstrap.addBundle(new AssetsBundle("/assets", "/my-leagues", "index.html", "my-leagues")); 
    bootstrap.addBundle(new AssetsBundle("/assets", "/registering-leagues", "index.html", "registering-leagues")); 
    bootstrap.addBundle(new AssetsBundle("/assets", "/league-register/*", "index.html", "league-register")); 
    bootstrap.addBundle(new AssetsBundle("/assets", "/", "index.html", "home")); 

Моей цели в настоящее время, чтобы страница index.html служила для входа /,/моя-лига,/регистраций -лиги,/лига-регистр/* (где * может быть любым числом) и /. Это взломанное решение не работает для актива «/ лига-регистр/*», поскольку пакет активов не поддерживает дикие карты.

Есть ли простой способ указать определенные конечные точки для возврата моего файла index.html?

Спасибо!

ответ

0

Я понял, как это сделать, но не уверен, что это лучшее решение. Я создал сервлет, который просто служит моему файлу index.html. Внутри моей функции запуска я добавил:

environment.getApplicationContext().addServlet(new ServletHolder(new BaseServlet()), "/login"); 
    environment.getApplicationContext().addServlet(new ServletHolder(new BaseServlet()), "/my-leagues"); 
    environment.getApplicationContext().addServlet(new ServletHolder(new BaseServlet()), "/registering-leagues"); 
    environment.getApplicationContext().addServlet(new ServletHolder(new BaseServlet()), "/league-register/*"); 

Мои BaseServlet выглядит следующим образом:

public class BaseServlet extends HttpServlet { 

    public void doGet(HttpServletRequest req, HttpServletResponse resp) 
     throws IOException, ServletException { 

     RequestDispatcher view = req.getRequestDispatcher("/index.html"); 

     view.forward(req, resp); 
    } 
} 
Смежные вопросы