Нормализация URL на хостинге Firebase вызывает проблемы с Angular несколькими вспомогательными маршрутами - PullRequest
1 голос
/ 14 февраля 2020

Я расследую нежелательный побочный эффект хостинга Firebase. Он пытается нормализовать URL-адреса с несколькими слэшами на один sla sh, перенаправляя с помощью 301 «чистый» URL-адрес.

Например, это случается (двойной знак sh между foo и bar):

https://hostname/foo//bar => HTTP 301 до: https://hostname/foo/bar

, что делает смысл!

Но .. при использовании Angular и с несколькими вспомогательными маршрутами, они также разделяются с двумя слэшами маршрутизатором Angular, и эти URL-адреса также будут перенаправляться на хостинг Firebase. Например:

https://hostname/(outlet1:foo//outlet2:bar) => HTTP 301 to: https://hostname/%28outlet1:foo/outlet2:bar%29

И, таким образом, удаление / между двумя вспомогательными маршрутами (и кодирование символов (и), но это менее актуально для этого)

Я не могу найти способ настроить это поведение в Firebase, ни через консоль, ни через firebase.json. Кто-нибудь есть какие-либо предложения, если это поведение может быть настроено / отключено?

[править] Это поведение Angular Маршрутизатор является «жестко закодированным».

Файл: packages / router / src / url_tree.ts # L335

function serializeSegment(...)
  ...
  return `${serializePaths(segment)}/(${children.join('//')})`;

https://github.com/angular/angular/blob/master/packages/router/src/url_tree.ts#L335

...