3

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」を使用するためにバンドルをすべて削除することもできます。

この問題を処理する最善の方法は何ですか?

4

1 に答える 1