маршрутизация причалов для угловых / спа-приложений для статических файлов - PullRequest
0 голосов
/ 02 июля 2018

Мне удалось обслуживать статический экземпляр углового приложения через Jetty. Проблема возникает, когда я пытаюсь подключиться к прямой ссылке из адресной строки. Поскольку вся маршрутизация осуществляется через angular / clientide, как я могу получить причал, чтобы просто позволить angular справиться со всей маршрутизацией? Я видел некоторые настройки, которые говорят, что перенаправляют все ошибки 404 в индекс, но при проверке запроса коды состояния остаются равными 404. Мне еще предстоит выяснить, как лучше обслуживать все маршруты до угловых и предоставлять правильные коды состояния с правильной страницей. это мои текущие настройки:

класс основного причала:

package example;


import java.io.File;
import java.net.URL;
import java.util.jar.Attributes;
import java.util.jar.JarFile;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.*;
import org.eclipse.jetty.util.StringUtil;
import org.eclipse.jetty.webapp.WebAppContext;

public class AngularJSWebApp {

    public static void main(String[] args) throws Exception {
        // The simple Jetty config here will serve static content from the webapp directory
        String webappDirLocation = "src/main/webapp/src";

        // The port that we should run on can be set into an environment variable
        // Look for that variable and default to 8080 if it isn't there.
        String webPort = System.getenv("PORT");
        if (webPort == null || webPort.isEmpty()) {
            webPort = "8080";
        }
        Server server = new Server(Integer.valueOf(webPort));

        WebAppContext webapp = new WebAppContext();
        webapp.setContextPath("/");
        webapp.setDescriptor(webappDirLocation + "/WEB-INF/web.xml");
        webapp.setResourceBase(webappDirLocation);

        server.setHandler(webapp);
        server.start();
        server.join();
    }
}

Файл web.xml:

<?xml version="1.0"?>
<web-app>

 <welcome-file-list>
        <welcome-file>/index.html</welcome-file>
</welcome-file-list>

<error-page>
      <error-code>404</error-code>
      <location>/index.html</location>
</error-page>


</web-app>

есть ли способ направить всю маршрутизацию в угловой режим и предоставить правильный статус от внешнего интерфейса?

...