Comment ajouter BundleConfig.cs à mon projet?

96

J'ai un projet ASP.Net MVC et je veux mettre en œuvre bottelage, mais tout ce que je peux trouver sur internet me Dirige pour ouvrir BundleConfig.csdans App_Start- mais ce fichier n'existe pas dans mon projet. J'ai seulement trois fichiers dans ce dossier: FilterConfig, RouteConfiget WebApiConfig.

La configuration du bundle n'a pas été générée lorsque j'ai créé la solution (IIRC était un projet ASP.NET MVC vide au début).

Il semble que cela devrait être très facile à faire, mais je ne peux tout simplement pas le comprendre.

PS Juste pour clarifier à ceux qui ne lisent pas attentivement, ceci est pour une application MVC4 / .Net 4.5 créée à partir de zéro. La solution est indiquée ci-dessous.

Maverick
la source
Vous ne pouvez pas le trouver car il est uniquement inclus dans les modèles de projet ASP.NET 4.5. Je suppose que vous utilisez une version antérieure d'ASP.NET.
Jason Roell
2
@Liam Nope. Comme il est clairement indiqué dans la question, il s'agit d'une application créée à nouveau, non convertie à partir de MVC3. Il est également assez clair pour savoir comment ajouter le fichier BundleConfig.cs - pas comment ajouter une référence à System.Web.Optimization (ce qui est totalement inutile dans le scénario de cette question). Je dois supposer que vous essayiez de commenter une question tout à fait différente.
Maverick
@Liam - en fait, je vois peut-être que vous avez peut-être été dérouté par la réponse, qui comprend l'étape "ajouter le package Microsoft.AspNet.Web.Optimization nuget à votre projet Web" qui ne faisait pas partie de la solution au problème ci-dessus. La solution consistait à ajouter le fichier BundleConfig.cs. Je l'ai dit dans un commentaire sur la réponse ... mais ce commentaire (et tous les autres sur la réponse) semblent avoir disparu.
Maverick

Réponses:

167

BundleConfign'est rien de plus qu'une configuration groupée déplacée vers un fichier séparé. Il faisait partie du code de démarrage de l'application (les filtres, les bundles, les itinéraires étaient configurés dans une classe)

Pour ajouter ce fichier, vous devez d'abord ajouter le Microsoft.AspNet.Web.Optimizationpackage nuget à votre projet Web:

Install-Package Microsoft.AspNet.Web.Optimization

Ensuite, dans le dossier App_Start, créez un nouveau fichier cs appelé BundleConfig.cs. Voici ce que j'ai dans le mien (ASP.NET MVC 5, mais cela devrait fonctionner avec 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"));
        }
    }
}

Modifiez ensuite votre Global.asax et ajoutez un appel à RegisterBundles()dans Application_Start():

using System.Web.Optimization;

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

Une question étroitement liée: comment ajouter une référence à System.Web.Optimization pour l'application MVC-3-converti-en-4

vmg
la source
2
nuget devrait en ajouter une version passe-partout.
niico
1

Si vous utilisez "MVC 5", vous ne verrez peut-être pas le fichier et vous devez suivre les étapes suivantes: http://www.techjunkieblog.com/2015/05/aspnet-mvc-empty-project-adding.html

Si vous utilisez "ASP.NET 5", il a cessé d'utiliser "bundling and minification" à la place a été remplacé par gulp, bower et npm. Plus d'informations voir https://jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/

Cesar Alvarado Diaz
la source