6

私が知る限り (率直に言って、 に関するドキュメントSystem.Web.Optimizationは非常にまばらであるため)、ASP.NET でバンドルが機能する方法は、一連のファイル (ScriptBundleおよびに対応する Javascript または CSS StyleBundle) を登録し、それらを仮想パスに関連付けることです。たとえば、~/bundles/jqueryuiすべての jQuery UI スクリプトの場合です。後で非デバッグ モードで実行している場合、ASP.NET はこれらのファイルを縮小できます。縮小されたバージョンは、バンドルに指定した仮想パスで利用できるようになります。

デフォルトのバンドル セットアップでは、一部のスクリプト バンドルが~/bundles/...仮想パスとして登録され、一部の CSS が仮想パスとして登録され~/Content/cssます。私の質問は、これは矛盾していませんか? ~/bundles/js/...とのようなものを持っている方が理にかなっている~/bundles/css/...でしょうか? 実際、~/Contentディレクトリは実際には実際のディレクトリとして存在するため、名前が衝突する可能性さえあります。仮想バンドル パスを、デフォルトでは存在せず、実際のファイル システム上に作成されることを意図していないディレクトリにしたいと考えていました。~/Content/css私が理解していないCSSバンドルの仮想パスに使用される理由はありますか?

4

1 に答える 1

7

すばらしい質問です。簡単に言えば、一般的にはまったく問題にならないということです。ただし、一部のスクリプト ファイルと CSS は、相対パスを使用して他のコンテンツを参照するため、ディスク上の物理的な場所に依存します。たとえば、新しい ASP.NET 4.5 プロジェクトのデフォルトの jQuery UI バンドルを見ると、パスがかなり長いことがわかります。これは、jQuery の CSS が一部の画像ファイルへの相対参照を持っているためです。それらを正しく解決するには、パスが重要です。そうしないと、「..」などのものが右の親ディレクトリに上がりません。

于 2012-12-15T17:10:14.653 に答える