2017-11-14 1 views
1

私は今非常に大きなアプリケーションを設計しており、私は将来のための良いインフラストラクチャを作りたいと思っています。BundleCollectionに1つのスクリプトファイルを追加することは任意ですか?

Razor(MVC)には、BundleConfig.csで定義されたBundleCollectionの特定のファイルまたはバンドル項目を指定して、関数@Scripts.Render("~/Scripts/myscript.js")を使用してjavascriptファイルをビューに含めるオプションがあります。

スクリプトファイル自体を指定するのではなく、単一ファイルのScripts.Render関数でバンドル項目を定義する追加値がありますか?

私が見つけた付加価値の1つは、長期的には、それを使用するビューを変更することなく必要に応じてバンドルにファイルを追加することができ、最適化が楽しめるということです。私はまだ "バンドル"で1つのjsファイルを使用している間、私はそれのための付加価値を見つけることができませんでした。

答えて

2

利点のカップルが実際に離れて、あなたが言及しているものからあります:

  1. バンドルは、リリースモードで縮小されています。バンドルにファイルを追加して(単一のファイルでも)、ビュー内のバンドルを参照すると、コードが縮小されます。ファイルを直接参照する場合はありません。それはおそらくあなたがプロダクションで行っていることでしょう。
  2. フレームワークは、バンドルの新しいバージョンごとにランダムハッシュを生成してスクリプトに追加し、以前のバンドルのキャッシュを無効にします。それはこのようなものです<script src="/bundles/myscript.js?v=CQJxkNd9QnrvutTyUG9mM-vD0FrbCc1"></script>。あなたのクライアントは、毎回の新リリースの後にこれに感謝します。また、手動でバージョンを生成して追加しない限り、ファイルを直接参照してもそれは起こりません。

は、だから私は通常、何をすべきか、と私は間違って証明していますまで、私はそれは小さなモジュールを備えた単一のjsファイルで構成されていても、すべてのページの特定のニーズに合わせてバンドルを作成し、私はそれは良い習慣を検討してください。

bundles.Add(new ScriptBundle("~/bundles/home").Include("~/Scripts/home.js")); @Scripts.Render("~/bundles/home")

:例のホームページ
関連する問題