2013-08-21 41 views
8

đội của tôi sử dụng một NuGet gói tùy chỉnh để cài đặt jQuery UI, trong đó đặt các file theme vào một cấu trúc thư mục như thế này:ASP.NET MVC 4 bó với ký tự đại diện trong đường dẫn thư mục

  • Content
    • jquery -ui-1.10.3
      • hình ảnh
      • jquery-ui.css
      • jquery-ui.min.css

Tôi đang cố gắng sử dụng ASP.NET MVC 4 bó để bao gồm nội dung này trong lớp BundleConfig bên trong thư mục App_Start ứng dụng của tôi như vậy:

bundles.Add(new StyleBundle("~/bundles/css") 
       .Include("~/Content/normalize-{version}.css", 
          "~/Content/jquery-ui-{version}/jquery-ui.css", 
          "~/Content/Site.css")); 

này ném một lỗi khi tôi chạy trang web:

Directory does not exist. 
Parameter name: directoryVirtualPath 

tôi cũng đã cố gắng:

bundles.Add(new StyleBundle("~/bundles/css") 
       .Include("~/Content/normalize-{version}.css") 
       .IncludeDirectory("~/Content/jquery-ui-*", "*.css") 
       .Include("~/Content/Site.css")); 

Điều đó không hoạt động (rõ ràng). Tôi có thể chỉ định rõ ràng phiên bản trên thư mục, nhưng điều đó đánh bại một phần lợi ích của việc sử dụng gói.

Vậy làm cách nào tôi có thể sử dụng ký tự đại diện trong đường dẫn thư mục?

Trả lời

6

Bạn có thể sử dụng phiên bản quá tải IncludeDirectory để tìm kiếm thư mục con.

Giả sử bạn có các tập tin sau đây:

\Root\Content\jquery-ui-1.10.3\jquery-ui.css

Sử dụng mã này để tìm và thêm nó:

.IncludeDirectory("~/Content", "jquery-ui.css", true) 

này rất hữu ích vì nó sẽ luôn luôn tìm jquery-ui.css, bất kể nơi bạn đặt nó.

Nhược điểm phương pháp này là nó sẽ tìm kiếm và bao gồm tất cả jquery-ui.css file mà nó tìm thấy, mà có thể gây ra một số lỗi nếu bạn không đảm bảo rằng chỉ có một jquery-ui.css tồn tại.

(Hãy nhớ rằng tìm kiếm các thư mục con cũng sẽ vẫn tìm kiếm trên thư mục gốc ví dụ: ~/Nội dung)

+0

Vì vậy, không có lựa chọn nào khác mà chúng ta có thể xác định tên tập tin cần thiết thay vì bao gồm tất cả ?? – BiLaL