Jak dodać BundleConfig.cs do mojego projektu?

98

Mam projekt ASP.Net MVC i chcę realizować łączenia w pakiet, ale wszystko, co mogę znaleźć w internecie kieruje mnie do otwarcia BundleConfig.cssię App_Start- jednak ten plik nie istnieje w moim projekcie. Mam tylko trzy pliki w tym folderze: FilterConfig, RouteConfigiWebApiConfig .

Konfiguracja pakietu nie została wygenerowana podczas tworzenia rozwiązania (IIRC był to pusty projekt ASP.NET MVC na początku).

Wygląda na to, że powinno to być naprawdę łatwe, ale po prostu nie mogę tego rozgryźć.

PS Dla wyjaśnienia tym, którzy nie czytają dokładnie, dotyczy to aplikacji MVC4 / .Net 4.5 utworzonej od podstaw. Rozwiązanie zaznaczono poniżej.

Politycznie niezależny
źródło
Nie możesz go znaleźć, ponieważ jest to uwzględnione tylko w szablonach projektów ASP.NET 4,5. Zakładam, że używasz wcześniejszej wersji programu ASP.NET.
Jason Roell,
2
@Liam Nope. Jak wyraźnie zaznaczono w pytaniu, dotyczy to aplikacji stworzonej od nowa, a nie przekonwertowanej z MVC3. Dość jasno też chodzi o to, jak dodać plik BundleConfig.cs - a nie jak dodać odwołanie do System.Web.Optimization (coś, co jest całkowicie niepotrzebne w scenariuszu tego pytania). Muszę założyć, że próbowałeś skomentować zupełnie inne pytanie.
Maverick
@Liam - właściwie, widzę, że być może byłaś zdezorientowana odpowiedzią, która obejmuje krok „dodaj pakiet Microsoft.AspNet.Web.Optimization nuget do swojego projektu internetowego”, który nie był częścią rozwiązania powyższego problemu. Rozwiązaniem było dodanie pliku BundleConfig.cs. Powiedziałem to w komentarzu do odpowiedzi ... ale wydaje się, że ten komentarz (i wszystkie inne odpowiedzi) zniknął.
Maverick

Odpowiedzi:

170

BundleConfigto nic innego jak konfiguracja pakietu przeniesiona do oddzielnego pliku. Kiedyś był częścią kodu startowego aplikacji (filtry, pakiety, trasy były konfigurowane w jednej klasie)

Aby dodać ten plik, najpierw musisz dodać Microsoft.AspNet.Web.Optimizationpakiet NuGet do projektu sieci web:

Install-Package Microsoft.AspNet.Web.Optimization

Następnie w folderze App_Start utwórz nowy plik cs o nazwie BundleConfig.cs. Oto, co mam w mojej (ASP.NET MVC 5, ale powinno działać z 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"));
        }
    }
}

Następnie zmodyfikuj swój Global.asax i dodaj wywołanie RegisterBundles()w Application_Start():

using System.Web.Optimization;

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

Ściśle powiązane pytanie: Jak dodać odwołanie do System.Web.Optimization dla aplikacji MVC-3-Convert-to-4

vmg
źródło
2
nuget powinien dodać standardową wersję this.
Niico