2010-08-20 3 views
2

Я только что создал новое веб-приложение ASP.NET в VS2010 и настроил его как приложение в IIS7.URL-адрес приложения-ссылки

Не уверен, что это действительно так, но код физически находится в папке \ myserver \ projects \ epeui \ epe (папка проектов является корнем моего веб-сайта по умолчанию). Приложение зависает от корня веб-сайта по умолчанию этого компьютера: http://myserver/epe/. И настраивается как приложение в IIS.

Обычно я использовал URL-адреса, относящиеся к корню приложения, поэтому мои файлы CSS находятся в/styles /, мои изображения находятся в/images /, а мои файлы JavaScript находятся в/scripts /.

Учитывая, что приложение настроено как таковое в IIS, для доступа к моему логотипу, я ожидаю использовать URL-адрес /images/mylogo.png, относительный URL-адрес приложения.

Однако это не работает для этого сайта; вместо этого мне нужно использовать родительские пути (../images/mylogo.png) или URL-адреса относительно веб-сайта по умолчанию (/epe/images/mylogo.png). Ни один из них не очень хорош для соображений переносимости.

Я также попытался с помощью тильды использовать URL-адреса, которые предположительно являются относительно виртуального пути (то есть корень приложения) = ~/изображения/mylogo.png

Я клянусь, что я сделал это в тысячу раз раньше, но явно закручивался где-то ... Любые предложения?

Может ли кто-нибудь хотя бы подтвердить, что для стандартного применения в IIS, /mypage.html следует указывать http://myserver/myapp/mypage.html, а не http://myserver/mypage.html?

ответ

1

/mypage.html собирается карту в корень http://myserver/mypage.html, это правильное поведение

~ на элемент управления на стороне сервера будет привязать к корню приложения (так <asp:HyperLink NavigateUrl="~/mypage.html"...> будет отображаться на http://myserver/myapp/mypage.html

I в прошлом, особенно с css и javascript-файлами, приходилось использовать <%= Request.ApplicationPath %>/myPage.html. Иногда бывает полезно определить это как глобальную переменную в global.asax.cs, чтобы вы могли использовать ее целиком. Request.ApplicationPath в вашем экземпляре будет "/ myapp"

Я слишком много боролся с этим.

+0

У меня есть эта же проблема. У меня есть веб-приложение и веб-сайт. Я установил веб-приложение для использования IIS в vs для отладки. Он добавил приложение на веб-сайте по умолчанию, и, похоже, все мои URL-адреса загружаются правильно. На веб-сайте, однако, это не так. Они относятся к родительскому веб-сайту. Раздражает! – Chev