Come aggiungo BundleConfig.cs al mio progetto?


96

Ho un progetto di ASP.Net MVC e voglio implementare bundling, ma tutto quello che posso trovare su internet mi indirizza a aprire BundleConfig.csin App_Start- tuttavia questo file non esiste nel mio progetto. Ho solo tre file in quella cartella: FilterConfig, RouteConfige WebApiConfig.

La configurazione del bundle non è stata generata quando ho creato la soluzione (IIRC era un progetto ASP.NET MVC vuoto all'inizio).

Sembra che dovrebbe essere davvero facile da fare, ma semplicemente non riesco a capirlo.

PS Giusto per chiarire a chi non legge da vicino, si tratta di un'app MVC4 / .Net 4.5 creata da zero. La soluzione è indicata di seguito.


Non è possibile trovarlo perché è incluso solo nei modelli di progetto ASP.NET 4.5. Presumo che tu stia utilizzando una versione precedente di ASP.NET.
Jason Roell


2
@Liam No. Come si afferma chiaramente nella domanda, si tratta di un'app creata di nuovo, non convertita da MVC3. È anche abbastanza chiaro come aggiungere il file BundleConfig.cs - non come aggiungere un riferimento a System.Web.Optimization (qualcosa che è totalmente inutile nello scenario di questa domanda). Devo presumere che stavi cercando di commentare una domanda completamente diversa.
Maverick

@Liam - in realtà, vedo che forse potresti essere stato confuso dalla risposta, che include il passaggio "aggiungi il pacchetto nuget Microsoft.AspNet.Web.Optimization al tuo progetto web" che non faceva parte della soluzione al problema precedente. La soluzione è stata l'aggiunta del file BundleConfig.cs. L'ho detto in un commento sulla risposta ... ma quel commento (e tutti gli altri sulla risposta) sembrano essere scomparsi.
Maverick

Risposte:


167

BundleConfignon è altro che la configurazione del bundle spostata in un file separato. Faceva parte del codice di avvio dell'app (filtri, bundle, route venivano configurati in una classe)

Per aggiungere questo file, devi prima aggiungere il Microsoft.AspNet.Web.Optimizationpacchetto nuget al tuo progetto web:

Install-Package Microsoft.AspNet.Web.Optimization

Quindi nella cartella App_Start creare un nuovo file cs chiamato BundleConfig.cs. Ecco cosa ho nel mio (ASP.NET MVC 5, ma dovrebbe funzionare con 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"));
        }
    }
}

Quindi modifica il tuo Global.asax e aggiungi una chiamata a RegisterBundles()in Application_Start():

using System.Web.Optimization;

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

Una domanda strettamente correlata: come aggiungere un riferimento a System.Web.Optimization per l'app MVC-3 convertita in 4


2
nuget dovrebbe aggiungere una versione boilerplate di questo.
niico

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.