Sử dụng bộ đóng gói MVC4 được tích hợp sẵn, làm cách nào để thêm url CDN của tôi vào các thẻ liên kết mà nó tạo ra? Tôi đã thiết lập Amazon Cloudfront để nó lấy nội dung từ máy chủ web của tôi khi được yêu cầu lần đầu. Vì vậy, khi tôi định nghĩa một bó như vậy:Chuẩn bị CDN url tới đầu ra gói mvc 4
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/reset.css",
"~/Content/960_24_col.css",
"~/Content/Site.css"
));
Khi triển khai, tôi có thể tham khảo nó như sau:
http://[cloundfrontid].cloudfront.net/Content/css?v=muhFMZ4thy_XV3dMI2kPt-8Rljm5PNW0tHeDkvenT0g1
Bây giờ tôi chỉ cần thay đổi các liên kết được tạo ra bởi bundler từ việc liên quan đến liên kết tuyệt đối chỉ vào CDN của tôi.
<link href="[INSERT_CDN_URL_HERE]/Content/css?v=muhFMZ4thy_XV3dMI2kPt-8Rljm5PNW0tHeDkvenT0g1" rel="stylesheet"/>
Tôi nghĩ rằng có thể viết lại đường dẫn bằng IBundleTransform nhưng tôi không thể tìm thấy bất kỳ ví dụ nào về điều này.
LƯU Ý: Chỉ cần rõ ràng, tôi biết bạn có thể chỉ định liên kết CDN cho một gói, nhưng điều đó chỉ hoạt động nếu gói có thể được thay thế bằng liên kết tĩnh.
Tại sao bạn không thể sử dụng liên kết tĩnh tới CDN của mình? –
vì tôi không biết liên kết đó sẽ ở thời điểm biên dịch. Trình bundler gán nó tự động với chuỗi truy xuất bộ nhớ cache, ví dụ:/Content/css? V = muhFMZ4thy_XV3dMI2kPt-8Rljm5PNW0tHeDkvenT0g1 – PeteG
CDN của bạn thực sự đang sử dụng chuỗi truy vấn để bật nội dung nào nó cung cấp lại? Bạn không thể chỉ mã hóa các phiên bản một cách rõ ràng vào CDN của bạn? tức là/content/css1 và chỉ bump nó mỗi khi bạn rev bó của bạn? –