Подтвердить что ты не робот

Виртуальный каталог IIS и пути каталога ASP.NET

Проблема

Я столкнулся с типичной дилеммой виртуального каталога, поскольку у вас есть некоторые пути в вашем приложении ASP.Net, и вы развертываете приложение в виртуальном каталоге IIS. Затем все пути родственников к "веб-корню" (f.i., "/images" ) не работают, потому что приложение находится в пути к виртуальному каталогу.


Решения

A. Сделайте папку "images" виртуальным каталогом. Таким образом, "/images" всегда будет существовать.

B. Используйте "<%=Request.ApplicationPath%>/Imagenes" как источник моих изображений. Это отлично работает в IIS, но я не вижу его во время разработки или в отладке.

Это решение также включает следующие инструкции:

  • System.Web.VirtualPathUtility.ToAbsolute
  • ResolveClientUrl
  • Request.ApplicationPath

C. Используйте пути родственников к текущему элементу управления/странице. Это точно знает, где папка с изображениями относится к моему текущему файлу (без перехода к корню, поэтому я бы использовал такие вещи, как ",".. / ","../../" и т.д.


Решение, которое я ищу

Сказал это. Мне не нравятся эти решения. Я хотел бы получить решение в файле web.config или в IIS. Некоторое conf intruction Я пишу в файле web.config, который сообщает IIS, где мое приложение фактически находится (виртуальный каталог).

Любые советы?

4b9b3361

Ответ 1

Используете ли вы тильду (~) для своих путей, где вы можете?

~ ссылается на корень виртуального веб-приложения....

~/изображения, например.

Ответ 2

Если это только для файлов css на стороне клиента, то использование директивы url делает путь относительно пути к таблице стилей, а не к странице:

h1#title { background: url('dog.gif') no-repeat 0 0; } 

Также, если вы находитесь на asp.net mvc, у вас есть доступ к:

<script src="<%= Url.Content("~/scripts/new.js") %>" type="text/javascript"></script>