web-dev-qa-db-fra.com

Comment ajouter BundleConfig.cs à mon projet?

J'ai un projet ASP.Net MVC et je souhaite implémenter le groupement, mais tout ce que je peux trouver sur Internet m'oblige à ouvrir BundleConfig.cs dans App_Start - toutefois, ce fichier n'existe pas dans mon projet. Je n'ai que trois fichiers dans ce dossier: FilterConfig, RouteConfig et WebApiConfig.

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

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

P.S. Juste pour clarifier aux lecteurs qui ne lisent pas attentivement, il s’agit d’une application MVC4/.Net 4.5 créée à partir de zéro. La solution est indiquée ci-dessous.

91
Maverick

BundleConfig n'est rien d'autre qu'une configuration d'ensembles déplacée vers un fichier séparé. Auparavant, il faisait partie du code de démarrage de l'application (filtres, ensembles, itinéraires utilisés pour être configurés dans une classe)

Pour ajouter ce fichier, vous devez d’abord ajouter le package de nuget Microsoft.AspNet.Web.Optimization à votre projet Web:

Install-Package Microsoft.AspNet.Web.Optimization

Ensuite, sous le dossier App_Start, créez un nouveau fichier cs appelé BundleConfig.cs. Voici ce que j'ai dans la mienne (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"));
        }
    }
}

Puis modifiez votre fichier 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 une application MVC-3 convertie en 4 =

161
vmg

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

Si vous utilisez "ASP.NET 5", l'utilisation de "bundling and minification" a été remplacée 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/

1