Làm cách nào để thêm BundleConfig.cs vào dự án của tôi?


96

Tôi có một dự án ASP.Net MVC và tôi muốn thực hiện đóng bó, nhưng tất cả những gì tôi có thể tìm thấy trên internet chỉ đạo tôi để mở BundleConfig.cstrong App_Start- tuy nhiên tập tin này không tồn tại trong dự án của tôi. Tôi chỉ có ba tác phẩm trong thư mục đó: FilterConfig, RouteConfigWebApiConfig.

Cấu hình gói không được tạo khi tôi tạo giải pháp (IIRC lúc đầu là một dự án ASP.NET MVC trống).

Có vẻ như điều này thực sự dễ dàng để làm, nhưng tôi chỉ đơn giản là không thể tìm ra nó.

PS Chỉ để làm rõ cho những người không đọc kỹ, đây là ứng dụng MVC4 / .Net 4.5 được tạo từ đầu. Giải pháp được đánh dấu dưới đây.


Bạn không thể tìm thấy nó vì nó chỉ có trong các mẫu dự án ASP.NET 4.5. Tôi giả sử bạn đang sử dụng phiên bản cũ hơn của ASP.NET.
Jason Roell


2
@Liam Không. Như nó đã nêu rõ trong câu hỏi, điều này liên quan đến một ứng dụng được tạo mới, không được chuyển đổi từ MVC3. Nó cũng khá rõ ràng là về cách thêm tệp BundleConfig.cs - chứ không phải cách thêm tham chiếu đến System.Web.Optimization (một thứ hoàn toàn không cần thiết trong kịch bản của câu hỏi này). Tôi phải cho rằng bạn đang cố gắng bình luận về một câu hỏi hoàn toàn khác.
Maverick

@Liam - thực ra, tôi thấy có lẽ bạn có thể đã bối rối trước câu trả lời, bao gồm bước "thêm gói nuget Microsoft.AspNet.Web.Optimization vào dự án web của bạn" không nằm trong giải pháp cho vấn đề trên. Giải pháp là gì là thêm tệp BundleConfig.cs. Tôi đã nói điều này trong một bình luận về câu trả lời ... nhưng bình luận đó (và tất cả những người khác về câu trả lời) dường như đã biến mất.
Maverick

Câu trả lời:


167

BundleConfigkhông có gì khác hơn là cấu hình gói được chuyển sang tệp riêng biệt. Nó từng là một phần của mã khởi động ứng dụng (bộ lọc, gói, các tuyến được định cấu hình trong một lớp)

Để thêm tệp này, trước tiên bạn cần thêm Microsoft.AspNet.Web.Optimizationgói nuget vào dự án web của mình:

Install-Package Microsoft.AspNet.Web.Optimization

Sau đó, trong thư mục App_Start, tạo một tệp cs mới có tên BundleConfig.cs. Đây là những gì tôi có trong tài khoản của mình (ASP.NET MVC 5, nhưng nó sẽ hoạt động với 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"));
        }
    }
}

Sau đó, sửa đổi Global.asax của bạn và thêm một cuộc gọi RegisterBundles()vào Application_Start():

using System.Web.Optimization;

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

Một câu hỏi liên quan chặt chẽ: Cách thêm tham chiếu vào System.Web.Optimization cho ứng dụng MVC-3-convert-to-4


2
nuget nên thêm một phiên bản soạn sẵn của cái này.
niico

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.