2013-08-14 2 views
0

Я использую ASP.Net MVC, мои связки выглядят примерно так:IIS7 перенаправлять ~/расположения файлов

 bundles.Add(new Bundle("~/bundles/rgmpjsbundle").Include(
      "~/Scripts/jquery-{version}.js", 
      "~/Scripts/jquery-ui-{version}.js", 
      "~/Scripts/jquery.unobtrusive*", 
      "~/Scripts/jquery.validate*", 
      "~/Scripts/modernizr-*", 
      "~/Scripts/jquery.address-1.5.js", 
      "~/Scripts/tabmenu.js", 
      "~/Scripts/knockout-2.2.0.js", 
      "~/Scripts/knockout.mapping-latest.js", 
      "~/Scripts/jquery-ui-1.10.3.custom.js", 
      "~/Scripts/KnockoutCustomBindings.js", 
      "~/Scripts/knockout-sortable*", 
      "~/Scripts/moment.js")); 

Это довольно стандартный. проблема возникает, когда я отправляюсь на развертывание своего приложения в регионе разработки. IIS настроен следующим образом (я знаю, что это не очень хорошо):

DEVWEBSITE 
    -> app 1 
    -> app 2 
    -> app 3 
UATWEBSITE 
    -> app 1 
    -> app 2 
    -> app 3 

Однако; производство настроено по-другому, поскольку каждое приложение имеет собственный веб-сайт. Это доказывает правильную боль в моей заднице, так как в структуре DEV/UAT мое приложение будет полностью переходить на сайт DEV/UAT (сайт Shell) с ~, но в среде PROD он вернется к корень веб-приложения. Я бы использовал относительные ссылки, за исключением того, что я использую перезаписи URL MVC.

У кого-нибудь есть решение этой проблемы? Может быть, некоторые настройки на IIS7 поймать ~ ссылки?

+0

Ваша проблема в том, чтобы быть честным, что среда UAT не появляется, чтобы соответствовать вашему производству элементов. –

+0

расскажите мне об этом, но я ничего не могу изменить :-( – Josh

+0

Вы можете обнаружить, что лучшим решением может быть сохранение корня документа в файле machine.config и использование этого вместо ~ /. –

ответ

0

Вы можете попытаться создать помощника, например @ html.getMyPath() и ключ в вашей веб-конфигурации с помощью differents configuration for environments (dev, UAT Production) ключ должен содержать что-то вроде key = "pathToFolder" value = "/" или «~ /», а затем загрузите эту конфигурацию в кеш в начале вашего приложения.

Помощник прочитает параметр и найдет разрешение на путь к файлам.

Другим решением может быть то, что для каждой среды вы можете установить разные «корневые местоположения» и использовать server.mappath для определения физического расположения файлов для каждой среды, эта реализация также должна быть внутри html-помощника.

Я надеюсь, что помогает

Смежные вопросы