Развертывание приложения Angular в Wildfly

Я сделал приложение AngularJs, которое просто использует мой сервер REST api (встроенный в java и развернутый на Wildfly).

Я сделал мои серверы доступными из интернета, используя мой общедоступный IP-адрес (через переадресацию портов).

мой вопрос в том, как я могу сделать Угловое приложение доступным также из интернета, используя мой публичный IP. Могу ли я также развернуть его на Wildfly? Как мне это сделать?

3 ответов


вы можете упаковать свое угловое приложение в том же приложении, что и ваш REST backend API.

например, если вы упаковываете свой REST api в a .war package, вы можете поместить свои файлы приложений anglar (html-страницы, js-скрипты,...) в корневом каталоге пакета WAR и ресурсах REST в каталогах WEB-INF/lib, упакованных в файлы JAR.

см. детали упаковки войны здесь.

затем, чтобы запросить ваш REST api, вам просто нужно предоставить URI ресурса, а не базовый URL (включая контекст webapp), поскольку angular app принадлежит webapp, который также предоставляет ваш REST api.

например, если вы хотите получить один из своих ресурсов, вы можете сделать это с помощью angular: (с помощью REST API, используя путь " rs " в конфигурации приложения и используя $http angular service)

$http.get('rs/icecreams?flavoor=strawberry')

Если вы не хотите развертывать WAR/EAR, попробуйте определить обработчик в вашем автономном режиме.файл конфигурации XML:

<server name="default-server">
    <http-listener name="default" socket-binding="http"/>
    <host name="default-host" alias="localhost">
        <location name="/" handler="welcome-content"/>
        <location name="/yourapp" handler="static"/>
    </host>
</server>
<handlers>
    <file name="welcome-content" path="${jboss.home.dir}/welcome-content" directory-listing="true"/>
    <file name="static" path="/var/yourapp" directory-listing="true"/>
</handlers>

у меня есть приложение angular2 с маршрутами, и была необходима дополнительная конфигурация. Это процесс:

  1. в корневом модуле включить использование хэша для маршрутов:

    RouterModule.forRoot(routes, { useHash: true })
    
  2. создайте приложение, простой способ -ng build другие функции в угловой-cli build

  3. процесс сборки генерирует угловое приложение в папке "dist" в корне углового приложения. Скопируйте все файлы в папку dist в корень вашего военного файла.

  4. доступ к угловому приложению в http://SERVER_IP:PORT/WAR_PATH/#/. Все маршруты для angular app начинаются с#/.