Как заставить ИРИО уважать относительный путь? - PullRequest
0 голосов
/ 26 апреля 2020

В IIS 10 у меня работает веб-сайт через порт 4553. Локально этот веб-сайт работает нормально. Поскольку я хочу предоставить этот веб-сайт конечным пользователям, мне необходимо:

  1. Сделать его доступным через Azure Шлюз приложений.
  2. Направить порт 4553 на 443, используя внутреннюю ссылку в URL, поскольку прокси-сервер конечного пользователя разрешает только трафик c через порт 443. Я не могу установить порт 443 по умолчанию для решения IIS, поскольку порт 443 уже занят для другого веб-решения.

У меня все это работает:

Например, целевая страница содержит:

@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
<script src="~/Scripts/jquery.dataTables.min.js"></script>

AAG / IIS не понимает этот путь , Хотя целевая страница действительно работает, IIS пытается найти сценарии jquery, например, в «https://external.website.com/Scripts/jquery.dataTables.min.js», в то время как это должно быть «https://external.website.com/iis/solution/Scripts/jquery.dataTables.min.js», поэтому сценарий не ' Уважайте, что добавление iis/solution в URL.

Когда я вручную изменяю его на

<script src="~/iis/solution/Scripts/jquery.dataTables.min.js">
</script>"

, оно работает.

Но это слишком много, чтобы изменить это для всех HTML и других исходных файлов. Кроме того, он не может вносить эти изменения каждый раз, когда решение IIS нуждается в обновлении.

Мой вопрос; Есть ли что-то на более высоком уровне, которое я могу изменить в настройках IIS или на целевой странице, чтобы убедиться, что файл взят по правильному пути? Или это вариант, например, изменить физический путь?

1 Ответ

0 голосов
/ 27 апреля 2020

Вы размещаете приложение в виртуальном каталоге, а не в приложении? В таком случае IIS не сможет загрузить правильный URL-адрес.

Убедитесь, что вы размещаете проект в виртуальном приложении, а не в папке или виртуальном каталоге.

https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/application/

Если вы не хотите этого делать, вы можете переписать тег html <script> с правилом исходящих сообщений. На отрисованной странице html она должна выглядеть как

, и вы можете переписать ее на

https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/creating-outbound-rules-for-url-rewrite-module

...