Я использую ASP.NET MVC4 с WinHost.
Точно так же, как вопрос, заданный здесь, я столкнулся с той же проблемой:
Я пробую WinHost, и у меня возникают проблемы с поддоменами. На WinHost у вас может быть несколько поддоменов на одну учетную запись хостинга, но каждый поддомен указывает на корневой веб-сайт. Например. у вас могут быть www.example.com, sub1.example.com и sub2.example.com, но все они отображают контент по адресу http://www.example.com/.
Другие хосты позволяют вам указывать субдомены на подпапку на вашем веб-сайте. Это позволит вам указать sub1.example.com на / sub1, sub2.example.com на / sub2 и www.example.com на /.
WinHost рекомендует использовать страницу asp / aspx для перенаправления http://sub1.example.com на http://sub1.example.com/sub1, который указывает на / sub1. Хотя это сработает, я бы хотел, чтобы субдомен в URL-адресе не отображался дважды.
Поэтому я попытался использовать IIS7 URL Rewrite, чтобы указать http://sub1.example.com на / sub1. Бен Пауэлл подробно описывает это на его блог.
Мне удалось заставить эту часть работать, так что http://sub1.example.com фактически указывает на мое виртуальное приложение "/ sub1" в IIS.
Если я использую Url.Content, он работает безупречно.
Теперь я использую оптимизацию ASP.NET и связываю сценарии и CSS. Проблема в том, что для этого абсолютно необходим относительный URL-адрес, то есть:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
Однако, поскольку это относительный URL-адрес, я получу в разметке следующее:
<script src="/sub1/bundles/jqueryval?v=UgyEMAYOuSB9Bb6HcOEVHpd6fIIp54yF086SRNVcdIY1"></script>
Конечно, из-за "sub1" файл не находит. Я подумал о перенаправлении URL-адресов, над которым мне никогда не приходилось работать. Может маршрут в MVC? Не знаю, как это сделать. Я также мог бы полностью отказаться от объединения, чтобы использовать "Url.Content", что, на мой взгляд, печально.
Как лучше всего решить эту проблему?