Bagaimana cara menambahkan BundleConfig.cs ke proyek saya?

96

Saya memiliki sebuah proyek ASP.Net MVC dan saya ingin menerapkan bundling, tapi semua yang saya dapat menemukan di internet mengarahkan saya untuk membuka BundleConfig.csdi App_Start- namun file ini tidak ada dalam proyek saya. Saya hanya memiliki tiga file dalam folder itu: FilterConfig, RouteConfigdan WebApiConfig.

Konfigurasi bundel tidak dibuat ketika saya membuat solusi (IIRC itu adalah proyek ASP.NET MVC kosong di awal).

Sepertinya ini seharusnya sangat mudah dilakukan, tetapi saya jelas tidak bisa memahaminya.

PS Hanya untuk menjelaskan kepada mereka yang tidak membaca dengan cermat, ini untuk aplikasi MVC4 / .Net 4.5 yang dibuat dari awal. Solusinya ditandai di bawah ini.

Maverick
sumber
Anda tidak dapat menemukannya karena ini hanya disertakan dalam template proyek ASP.NET 4.5. Saya menganggap Anda menggunakan versi ASP.NET sebelumnya.
Jason Roell
2
@Tokopedia. Seperti yang dinyatakan dengan jelas dalam pertanyaan, ini terkait dengan aplikasi yang dibuat lagi, bukan dikonversi dari MVC3. Ini juga cukup jelas untuk bagaimana menambahkan file BundleConfig.cs - bukan bagaimana menambahkan referensi ke System.Web.Optimization (sesuatu yang sama sekali tidak diperlukan dalam skenario pertanyaan ini). Saya harus berasumsi bahwa Anda mencoba mengomentari pertanyaan yang sama sekali berbeda.
Maverick
@ Liam - sebenarnya, saya melihat mungkin Anda bingung dengan jawabannya, yang menyertakan langkah "tambahkan paket nuget Microsoft.AspNet.Web.Optimization ke proyek web Anda" yang bukan merupakan bagian dari solusi untuk masalah di atas. Apa solusinya adalah menambahkan file BundleConfig.cs. Saya memang mengatakan ini dalam komentar pada jawabannya ... tetapi komentar itu (dan semua yang lain pada jawaban itu) tampaknya telah menghilang.
Maverick

Jawaban:

168

BundleConfigtidak lebih dari konfigurasi bundel yang dipindahkan ke file terpisah. Dulu menjadi bagian dari kode startup aplikasi (filter, bundel, rute yang dulu dikonfigurasi dalam satu kelas)

Untuk menambahkan file ini, pertama-tama Anda perlu menambahkan Microsoft.AspNet.Web.Optimizationpaket nuget ke proyek web Anda:

Install-Package Microsoft.AspNet.Web.Optimization

Kemudian di bawah folder App_Start buat file cs baru bernama BundleConfig.cs. Inilah yang saya miliki di tambang saya (ASP.NET MVC 5, tetapi seharusnya berfungsi dengan 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"));
        }
    }
}

Kemudian ubah Global.asax Anda dan tambahkan panggilan ke RegisterBundles()di Application_Start():

using System.Web.Optimization;

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

Pertanyaan terkait erat: Bagaimana cara menambahkan referensi ke System.Web.Optimization untuk aplikasi MVC-3-convert-to-4

vmg
sumber
2
nuget harus menambahkan versi boilerplate ini.
niico
1

Jika Anda menggunakan "MVC 5" Anda mungkin tidak melihat file tersebut, dan Anda harus mengikuti langkah-langkah berikut: http://www.techjunkieblog.com/2015/05/aspnet-mvc-empty-project-adding.html

Jika Anda menggunakan "ASP.NET 5", ini telah berhenti menggunakan "bundling dan minification" sebagai gantinya digantikan oleh gulp, bower, dan npm. Informasi lebih lanjut lihat https://jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/

Cesar Alvarado Diaz
sumber