Угловой путь ресурсов deploy-url - PullRequest
0 голосов
/ 03 ноября 2018

Как вы все, возможно, знаете, при развертывании Angular к пути, отличному от root, существует проблема с путем к активу: любой путь '/ assets', существующий в ваших шаблонах или таблицах стилей, не имеет префикса пути развертывания.

Я хочу написать правило перезаписи IIS, которое проверяет, существует ли путь /assets/... в моем пути развертывания и, если да, соответствующим образом переписывает URL. Например, допустим, у меня есть актив на /assets/1.jpg, а мой URL-адрес развертывания - /ui/. Я хочу переписать правило, которое принимает URI запроса, добавляет к нему префикс /ui, проверяет, является ли это действительным файлом файловой системы и, если да, , переписывает запрос uri на /ui/assets/1.jpg.

Я попробовал следующее, но я знаю, что это не работает:

<rule name="angular asset" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="/ui/{REQUEST_URI}" matchType="IsFile" />
    </conditions>
    <action type="Rewrite" url="/ui/{R:1}" />
</rule>

Как правильно написать такое правило?

Уточнение Я хочу, чтобы правило перезаписи работало для любого пути префикса, а не только для /assets

1 Ответ

0 голосов
/ 03 ноября 2018

Создайте угловое приложение с опцией deploy-url следующим образом:

ng b --deploy-url /ui/

Далее опубликуйте приложение и хост под IIS

Попробуйте обновить правило перезаписи следующим образом

<rule name="angular asset" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_URI}" pattern="(.*)"/>
    </conditions>
    <action type="Rewrite" url="/ui/{R:1}" />
</rule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...