#angularjs #tomcat #angular-ui-router #tomcat8 #tomcat9
#angularjs #tomcat #angular-ui-router #tomcat8 #tomcat9
Вопрос:
Ниже приведена проблема, с которой я столкнулся, и мне нужна помощь.
Начальная проблема:
У меня есть сервер tomcat, на котором я развернул три проекта angular (внутри папки web apps). Когда я запускаю сервер Tomcat, появляются приложения angular. Как только я вхожу в приложение и перемещаюсь по страницам, а затем пытаюсь обновить любую страницу внутри приложения angular, это выдает ошибку 404.
Решение первоначальной проблемы:
Я получил решение для решения вышеуказанной проблемы, как указано ниже:
-
добавление параметра ниже в «server.xml » файл внутри папки конфигурации Tomcat. Параметр:-
-
Я создал файл 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]