Как добавить несколько правил перезаписи для нескольких проектов angular в файл rewrite.config в Tomcat 9

#angularjs #tomcat #angular-ui-router #tomcat8 #tomcat9

#angularjs #tomcat #angular-ui-router #tomcat8 #tomcat9

Вопрос:

Ниже приведена проблема, с которой я столкнулся, и мне нужна помощь.

Начальная проблема:

У меня есть сервер tomcat, на котором я развернул три проекта angular (внутри папки web apps). Когда я запускаю сервер Tomcat, появляются приложения angular. Как только я вхожу в приложение и перемещаюсь по страницам, а затем пытаюсь обновить любую страницу внутри приложения angular, это выдает ошибку 404.

Решение первоначальной проблемы:

Я получил решение для решения вышеуказанной проблемы, как указано ниже:

  1. добавление параметра ниже в «server.xml » файл внутри папки конфигурации Tomcat. Параметр:-

  2. Я создал файл rewrite.config внутри папки /config/Catalina/localhost/ и написал правила перезаписи для всех 3 приложений angular.

Новая проблема:

Появляется только одно приложение Angular, но все остальные приложения index.html страницы не загружаются, и в журналах я вижу ошибку 304.

Вопросы: Может кто-нибудь подсказать, как написать несколько конфигураций перезаписи для разных проектов angular в одном файле tomcat rewrite.config.

Подробнее: приложения Angular находятся в расположении:

Tomcat path/webapps / app1 Tomcat path/webapps / app2 Tomcat path/webapps / app3

содержимое файла rewrite.config:

 RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/app1/(.*) /app1/index.html

RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/app2/(.*) /app2/index.html

RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/app3/(.*) /app3/index.html
  

Загружается только app1, но app2 и app3 index.html страницы не загружаются, а в журналах tomcat есть 304 для app2 и app3.

Пожалуйста, предложите, как написать правила перезаписи для нескольких приложений Angular.

Ответ №1:

Вы уверены, что в вашем случае правильно обслуживается только первое, а не только третье? Потому что я думаю, что вам не хватает флага RewriteRule [L] …последнее правило:

 RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/app1/(.*) /app1/index.html [L]

RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/app2/(.*) /app2/index.html [L]

RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/app3/(.*) /app3/index.html [L]