Ответ 1
Переписывание URL именно то, что вы хотите, с блоком условий, чтобы проверить, существует ли файл. Содержимое в вашем каталоге dist
является статическим (т.е. живет в файловой системе), но маршруты WebApiApp
являются динамическими. Поэтому вам просто нужно проверить, соответствует ли маршрут файлу, который существует в каталоге dist
, или нет, если не просто позволить .NET обрабатывать маршрут. Добавление следующего в ваш файл Web.config
в разделе <system.webServer>
должно выполнить трюк:
<rewrite>
<rules>
<rule name="static dist files" stopProcessing="true">
<match url="^(.+)$" />
<conditions>
<add input="{APPL_PHYSICAL_PATH}dist\{R:1}" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="/dist/{R:1}" />
</rule>
<rule name="index.html as document root" stopProcessing="true">
<match url="^$" />
<action type="Rewrite" url="/dist/index.html" />
</rule>
</rules>
</rewrite>
Второе правило является необязательным, но это означает, что запрос для корня вашего сайта по-прежнему будет обслуживать файл index.html
из каталога dist
, эффективно создавая корень проекта WebApiApp\dist
, но все же позволяя всю маршрутизацию WebAPI.