Я использую 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 поймать ~ ссылки?
Ваша проблема в том, чтобы быть честным, что среда UAT не появляется, чтобы соответствовать вашему производству элементов. –
расскажите мне об этом, но я ничего не могу изменить :-( – Josh
Вы можете обнаружить, что лучшим решением может быть сохранение корня документа в файле machine.config и использование этого вместо ~ /. –