2013-05-16 27 views
5

Tôi đang ở đây để tìm kiếm về cách đóng gói CSS và Tập lệnh của tôi vào ứng dụng Biểu mẫu web của tôi.Đóng gói CSS và Tập lệnh trong ứng dụng Biểu mẫu web

Trước hết, tôi muốn chỉ ra rằng tôi đã làm theo hướng dẫn này: http://blogs.msdn.com/b/rickandy/archive/2012/08/14/adding-bundling-and-minification-to-web-forms.aspx

tôi có đã có trong App_Start các BundleConfig lớp trông như thế này:

using System.Web; 
using System.Web.Optimization; 

namespace SitePessoal.Web 
{ 
    public class BundleConfig 
    { 
     public static void RegisterBundles(BundleCollection bundles) 
     { 
      bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
         "~/Scripts/jquery/core/jquery-{version}.js")); 

      bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
         "~/Scripts/jquery/core/jquery-ui-{version}.js")); 

      bundles.Add(new StyleBundle("~/CSS/css").Include(
         "~/CSS/Estilos.css", 
         "~/CSS/Print.css", 
         "~/CSS/Styles.css")); 
     } 
    } 
} 

Ngoài ra, Tôi đã tải xuống gói Tối ưu hóa với Nugget, vì vậy sau đó tôi đã chuyển đến tệp Global.asax của mình và cố gắng đăng ký điều này trong phương thức Application_Start như sau:

void Application_Start(object sender, EventArgs e) 
{ 
    // Code that runs on application startup 
    BundleConfig.RegisterBundles(BundleTable.Bundles); 
    BundleTable.EnableOptimizations = true; 
} 

Thật không may, đây là nơi mọi thứ không hoạt động. Thật không may, nó giữ gạch dưới lớp với màu đỏ và cho tôi những thông điệp sau:

Error 3 The name 'BundleTable' does not exist in the current context 
Error 4 The name 'BundleTable' does not exist in the current context 
Error 2 The name 'BundleConfig' does not exist in the current context 

Bất kỳ ý tưởng nào về lý do tại sao điều này có thể xảy ra? Cảm ơn trước!

Trân trọng,
Mad

Trả lời

4

Tôi đã giải quyết được sự cố @MadGatsu gặp phải sau cùng một hướng dẫn.

@Pricey là đúng, và% MadGatsu thêm một cách chính xác tài liệu tham khảo cho Global.asax, bao gồm,

<%@ Import Namespace="System.Web.Optimization" %> 
<script RunAt="server">   
    void Application_Start(object sender, EventArgs e) 
    { 
      BundleConfig.RegisterBundles(BundleTable.Bundles); 

Nhưng có nhiều hơn một chút với nó.

Tôi suy luận, dựa trên việc thiếu Global.asax.cs, rằng chúng tôi có Trang web. Trong trường hợp này, chúng tôi cần đặt tệp Bundleconfig.cs vào thư mục aspnet đặc biệt, App_Code. Không thêm thư mục App_Start để chứa tệp vì tệp sẽ không hoạt động. Đơn giản chỉ cần di chuyển BundleConfig.cs tôi để App_Code từ App_Start sửa 'BundleConfig' không tồn tại trong bối cảnh hiện nay lỗi.

+0

Sẽ thử giải pháp đó và tôi sẽ sớm trả lời. Chúc mừng! :) – MadGatsu

+0

Thực tế giải pháp của bạn đã khắc phục vấn đề với thông báo lỗi mà tôi nhận được về "BundleConfig" không tồn tại trong ngữ cảnh hiện tại! Đánh dấu là giải pháp. Cảm ơn bạn! :) – MadGatsu

2

Bạn có thể cố định này đã nhưng chỉ trong trường hợp đó là sử dụng cho bất cứ ai .. có lẽ bạn cần phải thêm một tham chiếu đến System.Web.OptimizationBundleConfig lớp học của bạn namespace SitePessoal.Web để Global.asax.cs bạn

Ví dụ:

using System.Web.Optimization; 
using SitePessoal.Web; 

namespace SitePessoal.Web.Application 
{ 
    public class Global : HttpApplication 
    { 
     private void Application_Start(object sender, EventArgs e) 
     { 
       BundleConfig.RegisterBundles(BundleTable.Bundles); 
       BundleTable.EnableOptimizations = true; 
     } 
    } 
} 

Bạn có lẽ cũng cần phải thêm System.Web.Optimization không gian tên cho các trang của bạn trong web.config nếu bạn chưa thực hiện, bởi vì nó không đủ để thêm tham chiếu vào gói Microsoft.AspNet.Web.Optimization qua NuGet.

<pages> 
    <namespaces> 
     <add namespace="System.Web.Optimization"/> 
    </namespaces> 
</pages> 
+0

Xin chào Pricey, cảm ơn bạn đã đưa ra câu trả lời có thể. Trong thực tế, chủ đề này vẫn còn mở vì tôi chưa giải quyết nó.Tôi sẽ thử giải pháp của bạn và đưa ra phản hồi càng sớm càng tốt (còn gọi là ngày mai!). Rất cám ơn bất kể kết quả. – MadGatsu

+0

Hi Pricey, tôi không có thời gian để kiểm tra điều này cho đến bây giờ. Rất bận rộn trong công việc. Tôi đã thử giải pháp của bạn, nhưng nó vẫn không hoạt động. Tôi có một trang web, không phải ứng dụng web, vì vậy tôi không có một tệp lớp Globa.asax.cs. Thay vào đó, tôi đã thêm vào Global.asax: <% @ Nhập không gian tên = "System.Web.Optimization"%> <% @ Import Namespace = "SitePessoal.Web"%> Nhưng nó cho tôi thấy lỗi BundleConfig không tồn tại trong ngữ cảnh này. Trong file web.config tất cả mọi thứ là tốt và System.Optimization đã có. Còn ý tưởng nào nữa không? Cảm ơn @Pricey. – MadGatsu

Các vấn đề liên quan