как запустить угловой маршрутизатор после базового href без изменения адреса активов

У меня есть приложение angular, которое я хочу отобразить из /en/myapp/ URL-адреса. Я нахожу решение с базовым href. Я могу его решить, однако это вызывает большую проблему: он также меняет URL-адрес ресурсов, например, /main.css изменяется на /en/myapp/main.css, и я не Я не хочу этого, и если я установлю базовый href на / служба маршрутизатора angular, рассмотрите / en / myapp как внутренние угловые маршруты, которые не являются, и отобразите компонент 404, поэтому как запустить мое приложение angular с помощью определенного маршрута без каких-либо изменений в URL-адресе файлов ресурсов?

ОБНОВЛЕНИЕ

Мой маршрут к серверу не фиксирован, это что-то вроде этого /en/:username, и в этом маршруте я визуализирую страницу индекса angular, поэтому я не могу использовать параметр deploy-url в angular-cli.


person Daniel.V    schedule 15.04.2018    source источник


Ответы (1)


Попробуйте использовать параметр --deploy-url.

ng build --base-href /en/myapp --deploy-url /

person David    schedule 15.04.2018
comment
единственная проблема с этим решением заключается в том, что мой маршрут к серверу на самом деле не фиксирован, это что-то вроде этого / en /: username, и в этом маршруте я отображаю страницу индекса angular. Извините, я думаю, что это следует упомянуть в вопросе - person Daniel.V; 15.04.2018
comment
Как тогда работает ваше текущее решение? Как изменить базовый href - person David; 15.04.2018
comment
Я меняю его динамически в index.html примерно так ‍‍‍‍‍‍ <base href="/" id="baseHref"> <script> (function () { document.getElementById('baseHref').href = '/en/' + window.location.pathname.split('/')[2]; })(); </script> ``‍‍‍‍ - person Daniel.V; 15.04.2018
comment
Ok. Ваш проект все еще является проектом angular cli? Если да, можете ли вы указать только deploy-url? - person David; 15.04.2018
comment
да, это сработало, спасибо, но одна проблема не влияет на путь к папке с ресурсами / en / assets / images / и сначала имеет избыточный / en / - person Daniel.V; 15.04.2018
comment
Так это работает для css, но не для других активов? Как вы относитесь к своим активам? Например. для изображений - person David; 15.04.2018
comment
вот пример одного изображения assets / images / profilepic / 1f0f84d0-8d6a-11e7-a1c0-6bc2140cf8b9.jpg, но браузер запрашивает это /en/assets/images/profilepic/1f0f84d0-8d6a-11e7-a1c0-6bc2140cf8b9.jpg I получить этот URL-адрес с сервера после загрузки приложения и поместить его в мое представление с помощью angular. Я не знаю, связано это или нет, вот скриншот моего браузера imgur.com/a/zu65L - person Daniel.V; 16.04.2018
comment
Позвольте нам продолжить это обсуждение в чате. - person Daniel.V; 16.04.2018
comment
Разве вам не нужно просто указать актив с ведущей косой чертой? /assets/images... - person David; 16.04.2018
comment
да, вы были правы, большое спасибо за ваш ответ, он мне очень помог - person Daniel.V; 16.04.2018