Краткая версия: что мне нужно: как настроить службу angular2 http
для игнорирования <base href>
Более длинная версия — на случай, если есть лучший подход: В моем проекте мы обслуживаем два угловых приложения с использованием Apache:
http://host/index.html - angular 1
http://host/ng2/index.html - angular 2
Они оба используют одну и ту же конечную точку
http://host/api/foo
Оба приложения используют один и тот же виртуальный хост. Приложение angular 2 находится в папке public/ng2 на диске.
Проблема сводится к следующему:
Когда я использую: <base href="/ng2/">
, приложение angular загружается нормально. Однако все запросы к API с использованием службы http загрязняются.
http.get('/api/foo/2') goes to http://host/ng2/api/foo
Мое текущее решение состоит в том, чтобы установить для базового href значение <base href="/">
и поместить все файлы angular2, кроме index.html, непосредственно в /public. (index.html все еще находится в /public/ng2) Это работает, но это беспорядок.
Что я хотел бы иметь:
- Все файлы angular2 находятся в /public/ng2 (работает из-за
<base href="/ng2/">
или другой конфигурации Apache) - Outgoing requests do not have ng2 appended to them.
- e.g http.get('/api/foo/2') => http://host/api/foo
Невозможно жестко закодировать URL
http.get(api_root + '/foo/2')
- person Ki Jéy   schedule 26.01.2017