10

Tôi đang tìm kiếm vào ASP.NET MVC4 System.Web.Optimization bundling và đã tự hỏi làm thế nào bạn sẽ đi về phục vụ lên một số file CSS từ một CDNngười khác địa phương đến một máy chủ?ASP.NET MVC4 bundling CSS Một số trên CDN cục bộ với máy chủ?

Điều đó có khả thi không?

Dường như gói bundles.UseCdn = true ở cấp tập hợp chứ không phải cài đặt cho gói riêng lẻ.

Mọi hướng dẫn sẽ được đánh giá cao.

Trả lời

9

Đúng, ngay bây giờ sự hỗ trợ CDN chỉ là trên mỗi bó level, bạn không thể có một bó với một số tài sản cá nhân đến từ các CDN và một số địa phương tại thời điểm này. Về cơ bản là một trong hai hoặc: bạn có thể có gói sử dụng cdn với dự phòng cho gói của máy chủ cục bộ hoặc toàn bộ gói phải nằm trên CDN.

CẬP NHẬT: Nhưng để làm rõ, bạn có thể có một số gói trên CDN và một số gói cục bộ. Điều đó được điều khiển bởi CdnPath trên cá thể bó. Về cơ bản nếu không có CdnPath được đặt trên một gói riêng lẻ, nó sẽ luôn được phục vụ cục bộ.

18

Các ASP.NET site has some information về điều này:

Các mã sau thay thế jQuery địa phương bó với một CDN jQuery bó.

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

    bundles.UseCdn = true; //enable CDN support 

    //add link to jquery on the CDN 
    var jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"; 

    bundles.Add(new ScriptBundle("~/bundles/jquery", 
       jqueryCdnPath).Include(
       "~/Scripts/jquery-{version}.js")); 

    // Code removed for clarity. 
} 

Trong đoạn mã trên, jQuery sẽ được yêu cầu từ CDN trong khi ở chế độ phát hành và phiên bản debug của jQuery sẽ được lấy tại địa phương trong chế độ gỡ lỗi. Khi sử dụng CDN, bạn nên có cơ chế dự phòng trong trường hợp yêu cầu CDN không thành công. Đoạn mã đánh dấu sau đây từ cuối của tệp bố cục hiển thị tập lệnh được thêm vào để yêu cầu jQuery nên thiếu CDN.

Cá nhân, tôi không thấy mình đang gỡ lỗi mã từ jQuery, Knockout hoặc bất kỳ thư viện nào khác. Tôi luôn luôn tham khảo tài nguyên CDN trực tiếp trong bố cục của tôi. Bất kỳ kịch bản tôi cần phải cuộn bản thân mình, sau đó bó bằng cách sử dụng khung MVC.

trang web của tôi thường trông giống như thế này:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script> 
@Scripts.Render("~/content/js/siteName")