{phiên bản} ký tự đại diện trong gói MVC4


155

Trong MVC 4 chúng ta có các gói. Trong khi xác định các gói, chúng ta có thể sử dụng các ký tự đại diện như * cho tất cả các tệp trong một thư mục.

Trong ví dụ dưới đây -{version}có nghĩa là gì?

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

Câu trả lời:


177

Các -{version}cơ bản bản đồ đến một phiên bản regex , hoặc để được chính xác: (\d+(?:\.\d+){1,3}).
Sử dụng *có xu hướng lấy quá nhiều, ví dụ nếu bạn bó jquery*, điều đó sẽ bao gồm jquery-uicả điều đó có thể gây rối trật tự. Nhưng sử dụngjquery-{version}.js sẽ cho phép bạn tránh phải cập nhật định nghĩa gói của bạn mỗi khi bạn nâng cấp jquery.

Những điều cần lưu ý:

  • {version} chỉ hoạt động cho phần cuối của đường dẫn - về cơ bản là tên tệp - không phải là thư mục.
  • nhiều phiên bản của jquery trong cùng một thư mục sẽ bị bắt kịp.

2
Làm thế nào điều này sẽ làm việc với nhiều phiên bản của ex: jquery hiện trong thư mục?
pavsaund

18
Đó là một regex vì vậy nó sẽ bao gồm tất cả các kết quả khớp, vì vậy nếu bạn có nhiều phiên bản trong cùng một thư mục thì có lẽ bạn sẽ không muốn sử dụng nó.
Hao Kung

3
Lưu ý rằng {phiên bản} dường như không hoạt động trong một đường dẫn. Tại nơi làm việc, chúng tôi có phiên bản bootstrap trong đường dẫn (không phải trong tên tệp), vì vậy tôi đang cố gắng thực hiện điều này: "~ / Content / L Thư viện / bootstrap / {version} /css/bootstrap.css" Nhưng khi tôi chạy RegisterBundles, tôi nhận được một ArgumentException có nội dung "Thư mục không tồn tại."
Michael Nelson

4
bỏ phiếu cho không làm việc trong một thư mục. Bất kỳ giải pháp để làm cho nó làm việc trong một thư mục?
Zapnologica

3
Chỉnh sửa: nevermind, họ giải thích rõ ràng ở đây! asp.net/mvc/overview/performance/bundling-and-minification Cảm ơn bạn!
Jon Koeter

12

Gói này có thể chứa số phiên bản trong tên tập lệnh. Vì vậy, việc cập nhật jQuery lên phiên bản mới trong ứng dụng của bạn (thông qua NuGet hoặc thủ công) không yêu cầu bất kỳ thay đổi mã / đánh dấu nào.

Xem liên kết sau để biết thêm thông tin về gói: http://weblogs.asp.net/jgalloway/archive/2012/08/16/asp-net-4-5-asp-net-mvc-4-asp-net- web-page-2-and-visual-studio-2012-web-developer-features.aspx


3
Miễn là bạn chắc chắn rằng các phiên bản cũ thực sự được gỡ bỏ.
Triynko

Khi sử dụng {phiên bản} tôi nhận được Jquery không xác định và khi tôi thay thế bằng phiên bản thực tế, trong trường hợp của tôi 3.1.1, nó hoạt động tốt.
Marc Roussel

0

~/Scripts/jquery-{version}.jsđược bao gồm trong đó. Ở đây, hệ thống bó đủ thông minh để tham chiếu phiên bản cao nhất của tệp jquery khi chúng tôi chỉ định bộ chọn {version} trong đường dẫn. Ngoài ra, hệ thống gói này đủ thông minh để chọn phiên bản rút gọn của tệp, nếu có sẵn tại đường dẫn đã xác định.

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.