WinHost で ASP.NET MVC4 を使用しています。
ここで尋ねられた質問と同じように、同じ問題に遭遇しました:
WinHost を試していますが、サブドメインでいくつかの問題が発生しています。WinHost では、ホスティング アカウントごとに複数のサブドメインを持つことができますが、各サブドメインはルート Web サイトを指します。たとえば、 www.example.com 、 sub1.example.com 、および sub2.example.com を持つことができますが、それらはすべてhttp://www.example.com/にコンテンツを表示します。
その他のホストを使用すると、サブドメインを Web サイトのサブ フォルダーにポイントできます。これにより、sub1.example.com を /sub1 に、sub2.example.com を /sub2 に、www.example.com を / に向けることができます。
WinHost は、asp/aspx ページを使用して http://sub1.example.com を /sub1 を指す http://sub1.example.com/sub1にリダイレクトすることをお勧めします。それは機能しますが、URLにサブドメインを2回入れたくないのです。
そこで、IIS7 URL Rewrite を使用してhttp://sub1.example.comを /sub1 に指定しようとしました。Ben Powell は、彼のブログでこれについて詳しく説明しています。
http://sub1.example.comが IIS の仮想アプリケーション「/sub1」を実際に指すように、この部分を機能させることができました。
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」を使用するためにバンドルをすべて削除することもできます。
この問題を処理する最善の方法は何ですか?