Spring Gateway как маршрутизировать ссылки deep SPA

#angular #spring #gateway

#angular #spring #шлюз

Вопрос:

У меня есть приложение Angular, которое маршрутизируется из шлюза Spring. Корневой маршрут работает правильно, но когда вы углубляетесь во вложенные маршруты, он возвращает статус не найден. В документах Angular и в этом руководстве говорится, что вы должны переписать любой не найденный маршрут в /index.html но я не нашел в документах Spring Cloud Gateway никаких ссылок на то, как это настроить.

application.yml

       - id: teams-frontend
        uri: lb://teams-frontend
        predicates:
          - Path=/teams,/teams/**
        filters:
          - StripPrefix=1
#         - RewritePath=/.*, /index.html  ## This breaks existing link resources such as the scripts linked on the index.html
  

Как приложение Angular может вернуться к index.html когда он не найден?

Ответ №1:

Я разработал пользовательский фильтр. Если запрос содержит заголовок «Accept: text / html», то путь запроса перезаписывается с помощью /index.html

 - id: teams-frontend
    uri: lb://teams-frontend
    predicates:
      - Path=/teams,/teams/**
    filters:
      - StripPrefix=1
      - SPA