2013-05-09 34 views
5

Trong MVC-4, bó để nén CSS & file Js có thể được liên kết trong một tập tin bố trí với cú pháp Razor này: @Scripts.Render("~/JavaScripts")Gói (Sytem.Web.Optimization) tạo ra vân tay xây dựng cho các liên kết bó như thế nào?

này tạo ra một liên kết trong file layout đó bao gồm một fingerprint, được tái tạo trên mỗi ứng dụng xây dựng, để hỗ trợ kiểm soát bộ nhớ cache.

Vì vậy, các liên kết được tạo ra trông giống như:

<script src="/JavaScripts?v=dSMc_JTHMMP5GrWnILSYt_QBMw-g1pPlzknSorXpkyQ1"></script> 

Tôi muốn biết làm thế nào dấu vân tay đang được tạo (để sử dụng cho các mục đích tương tự), nhưng Sytem.Web.Optimization chưa mã nguồn mở .

+1

Tôi không biết về System.Web.Optimization, nhưng IIRC SquishIt sử dụng băm của nội dung tập tin để tạo vân tay này. Bạn có thể băm tất cả các tập tin liên quan đến quá trình và sử dụng một băm của nó nếu mục đích của dấu vân tay của bạn là thay đổi nó bất cứ khi nào bất kỳ nội dung bên trong một tập tin thay đổi. Để tham khảo, bạn có thể xem nguồn SquishIt -> https://github.com/jetheredge/SquishIt – tucaz

Trả lời

6

Các dấu vân tay được tạo ra bằng cách sử dụng băm sha256 của các byte từ bó và sau đó mã hóa:

  byte[] hash = sha256.ComputeHash(Encoding.Unicode.GetBytes(bundle)); 
      return HttpServerUtility.UrlTokenEncode(hash); 
+0

Khi nào và ở đâu điều này xảy ra? Có một sự kiện tôi có thể móc để có thể kích hoạt mã của riêng tôi bất cứ khi nào điều này xảy ra không? –

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