web-dev-qa-db-ja.com

BundleConfig.csをプロジェクトに追加するにはどうすればよいですか?

ASP.Net MVCプロジェクトがあり、バンドルを実装したいのですが、インターネットで見つけられるものはすべて、BundleConfig.csApp_Startで開くように指示されますが、このファイルは私のプロジェクトには存在しません。そのフォルダーには、FilterConfigRouteConfigWebApiConfigの3つのファイルしかありません。

ソリューションの作成時にバンドル構成は生成されませんでした(IIRCは最初は空のASP.NET MVCプロジェクトでした)。

これは本当に簡単にできるように思えますが、私はただそれを理解することはできません。

追伸よく読んでいない人に明確にするために、これはゼロから作成されたMVC4/.Net 4.5アプリ用です。以下に解決策を示します。

91
Maverick

BundleConfigは、個別のファイルに移動されたバンドル構成にすぎません。以前はアプリのスタートアップコードの一部でした(1つのクラスで構成されていたフィルター、バンドル、ルート)

このファイルを追加するには、最初にMicrosoft.AspNet.Web.Optimization nugetパッケージをWebプロジェクトに追加する必要があります。

Install-Package Microsoft.AspNet.Web.Optimization

次に、App_Startフォルダーの下に、BundleConfig.csという新しいcsファイルを作成します。これが私の鉱山にあるものです(ASP.NET MVC 5ですが、MVC 4でも動作するはずです):

using System.Web;
using System.Web.Optimization;

namespace CodeRepository.Web
{
    public class BundleConfig
    {
        // For more information on bundling, visit http://go.Microsoft.com/fwlink/?LinkId=301862
        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.validate*"));

            // Use the development version of Modernizr to develop with and learn from. Then, when you're
            // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

            bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                      "~/Scripts/bootstrap.js",
                      "~/Scripts/respond.js"));

            bundles.Add(new StyleBundle("~/Content/css").Include(
                      "~/Content/bootstrap.css",
                      "~/Content/site.css"));
        }
    }
}

次に、Global.asaxを変更し、RegisterBundles()Application_Start()への呼び出しを追加します。

using System.Web.Optimization;

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

密接に関連する質問: MVC-3-converted-to-4アプリのSystem.Web.Optimizationへの参照を追加する方法

162
vmg

「MVC 5」を使用している場合、ファイルが表示されない場合があります。次の手順に従う必要があります。 http://www.techjunkieblog.com/2015/05/aspnet-mvc-empty-project-adding。 html

「ASP.NET 5」を使用している場合は、「バンドルと縮小」の使用が停止され、代わりにgulp、bower、npmに置き換えられました。詳細は https://jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/ を参照してください

1