Корень виртуального пути внутреннего каталога ASP.NET - PullRequest
0 голосов
/ 25 января 2011

У меня есть два отдельных веб-приложения, которые называются MainWeb и Reports.Я хочу развернуть их таким образом: было бы одно виртуальное приложение для MainWeb, которое, например, указывало бы на c: \ inetpub \ www \ mainweb .

Приложение отчетов, которое мне хотелось быразвернуть в подкаталоге основной сети, чтобы он находился по адресу c: \ inetpub \ www \ mainweb \ reports .

. Таким образом, я могу объединить два, которые логически связаны, но я хочучтобы иметь их в отдельных проектах для удобства манипулирования.

Проблема в том, что в моем проекте отчетов я использую конструкции, подобные ~/Style/Whatever.css, который отлично работает при запуске автономного приложения Reports, но при использовании в качестве подкаталога в основной сети, он решаетна http://localhost/Style/Whatever.css, хотя мне нужно было бы разрешить его до http://localhost/reports/Style/Whatever.css.

Итак, вопрос в том, можно ли справиться с этой ситуацией, может быть, каким-то образом можно изменить поведение ~ во вложенныхweb.config?

Ответы [ 3 ]

1 голос
/ 25 января 2011

Не совсем веб-парень, но как насчет ярлыка к реальной папке в отчетах?

0 голосов
/ 25 января 2011

Я решил эту проблему тремя различными способами:

  1. Переместите ссылки на стиль из приложения «Отчет» в приложение «MainWeb».Таким образом, ваши ссылки "~" будут работать.Вы можете использовать другой виртуальный каталог, чтобы связать ваши папки ресурсов в корневом каталоге, если вы не хотите перемещать фактические файлы.
  2. Создайте статическое вспомогательное свойство с именем «ApplicationPath», которое будет возвращать либо «~ /»или "~ / Reports" в зависимости от того, где он находится.Затем вы можете просто использовать это свойство, чтобы возвращать правильный URL-адрес для вашего ресурса при создании HTML.
  3. Использовать встроенные ресурсы.Благодаря встроенным ресурсам URL-адрес создается автоматически, поэтому вам не нужно беспокоиться о путях.
0 голосов
/ 25 января 2011

хм, у меня похожая ситуация, и я не уверен, в чем ваша проблема, VirtualPathUtility и серверный контроль разрешают ~ текущий корень веб-приложения.

Но, возможно, вы можете поместить Virtual Path в раздел Properties / Web вашего каталога приложений Reports для localhost, изображение здесь

...