4

ASP.Net MVC 4 で記述された小さな Web アプリをデプロイしました。JS/CSS バンドルが適切にセットアップされ、ローカルで正常に動作します。問題は、IIS 6 サーバーに展開すると、バンドルが機能しないように見えることです。js/css がダウンロードされず、スクリプトの js リンクに移動しようとすると、404 が表示されます。

MVC 4 を IIS 6 に展開して、これを機能させた人はいますか?

4

3 に答える 3

3

問題は、ASP.Net 2.0 用に構成された既定の Web サイトの下で、ASP.Net 4.0 用に構成された仮想ディレクトリとして実行していたことです。

新しい Web サイトを作成し、それを asp.net 4.0 に設定すると、すべてが完全に機能しました。Haacked extensionless urlsに関するこの投稿によると、IIS 6 のほとんどのインスタンスで動作するはずです。

于 2012-03-05T20:58:45.763 に答える
2

バンドルは、次のような拡張子のない URL を介して提供されます。

IIS 6 は、そのままでは拡張子のない URL をサポートしていません。で終わる URL に遭遇した場合、/jsまたはこの URL をハンドラー (ASP.NET)/cssに関連付ける必要があるという手がかりがまったくない場合。aspnet_isapi.dll

拡張子のない URL を有効にするために、ASP.NET MVC 用に IIS 6 を構成する方法を説明しているPhil Haack のブログ投稿を読むことができます。ASP.NET MVC 3 についてですが、ASP.NET MVC 4 についてもまったく同じことが言えます。

ああ、統合パイプライン モードで実行する場合、デフォルトでこの機能を備えた IIS 7.0+ へのアップグレードを検討するかもしれません。

于 2012-03-05T17:55:56.767 に答える
0

私の問題は、App_Start の BundleConfig.cs ファイルにありました。私のBindleConfig.csファイルは、以前は次のようになっていました

  bundles.Add(new ScriptBundle("~/Scripts/ui-js").Include(
                                     "~/Scripts/ui-js/jquery.min.1.11.1.js"
                                     , "~/Scripts/ui-js/bootstrap.min.js"
                                     , "~/Scripts/ui-js/bootstrap-slider.js"
                                     , "~/Scripts/ui-js/bootstrap-lightbox.js"
                                     , "~/Scripts/ui-js/common-script.js"
                                     , "~/Scripts/ui-js/html5.js"
                                     , "~/Scripts/ui-js/jquery.colorbox.js"
                                     , "~/Scripts/ui-js/respond.src.js"
                                     , "~/Scripts/ui-js/angular.min.js"
                                     , "~/Scripts/ui-js/bootstrap.js"
                                     ,"~/Scripts/ui-js/jRate.min.js"
                                     , "~/Scripts/ui-js/jcrop.min.js"
                                     ));

そして、私のレイアウトページには

@Scripts.Render("~/Scripts/ui-js")

新しい ScriptBundle()仮想パスに同じフォルダー構造を使用できないため、グーグルで調べた後、解決策を見つけました。

だから私はこれに上記を変更しました

bundles.Add(new ScriptBundle("~/Scripts/ppScript").Include(
                                     "~/Scripts/ui-js/jquery.min.1.11.1.js"
                                     , "~/Scripts/ui-js/bootstrap.min.js"
                                     , "~/Scripts/ui-js/bootstrap-slider.js"
                                     , "~/Scripts/ui-js/bootstrap-lightbox.js"
                                     , "~/Scripts/ui-js/common-script.js"
                                     , "~/Scripts/ui-js/html5.js"
                                     , "~/Scripts/ui-js/jquery.colorbox.js"
                                     , "~/Scripts/ui-js/respond.src.js"
                                     , "~/Scripts/ui-js/angular.min.js"
                                     , "~/Scripts/ui-js/bootstrap.js"
                                     ,"~/Scripts/ui-js/jRate.min.js"
                                     , "~/Scripts/ui-js/jcrop.min.js"
                                     ));

そして私のレイアウトページでは、私はそれを

@Scripts.Render("~/Scripts/uiScript")

注: CSS と modernizr バンドルでも同じことを行う必要があります :)

于 2015-08-10T05:18:12.503 に答える