При переносе приложений интрасети ASP.NET из IIS6 в IIS7 я столкнулся с проблемой абсолютных URL-адресов в HTML-тегах: я не могу заставить их рассматривать приложение как корень URL-адреса, если приложение не опубликовано корень веб-сайта.
Вот фрагмент кода, который демонстрирует проблему. Он опубликован в приложении под «Веб-сайтом по умолчанию».
Первые два изображения отображаются в браузере. Третий не:
<body>
<form id="form1" runat="server">
Absolute path using asp image control:
<asp:Image ID="Image1" runat="server" ImageUrl="~/images/image.png" />
Relative path using html img tag:
<img alt="Works just fine" src="images/image.png" />
Absolute path using html img tag:
<img alt="WTF?" src="/images/image.png" />
</form>
</body>
Все три изображения отображаются правильно при запуске на локальном хосте.
Проблема в том, что "/images/image.png" ищет каталог с именем "images" на веб-сайте по умолчанию, а не в приложении.
Есть ли способ настроить приложение, чтобы его root был таким же, как root для html-URL? Любая помощь в этом с благодарностью!