http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference
<rule name="AngularJS Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
Выше приведено одно из нескольких правил перезаписи URL-адресов, широко рекомендуемых для угловых одностраничных приложений. Я понимаю, что правило означает: «Если запрос не для физического файла, перепишите URL-адрес в /index.html.
Выдержка из ссылки на документацию выше: «Это можно использовать для указания условия, которое проверяет, является ли запрошенный URL-адрес НЕ файлом ...»
В index.html у меня есть эта ссылка на скрипт:
<script src="lib/jquery/dist/jquery.min.js"></script>
Это физический файл, и он существует на диске в указанном месте.
Правило перезаписи получает этот запрос и перезаписывает его в /index.html.
Почему это происходит? Мой web.config находится на том же уровне, что и wwwroot.
На github есть несколько тем, связанных с перезаписью URL-адресов, не уверен, что эта конкретная проблема решена: https://github.com/aspnet/BasicMiddleware/issues/43 https://github.com/aspnet/IISIntegration/issues/164 https://github.com/aspnet/IISIntegration/issues/192