2013-05-09 2 views
5

은 CSS & JS 파일을 압축하기위한 다발이 면도기 구문 레이아웃 파일에 링크 될 수있다 각 app-build는 캐시 제어를 지원합니다.번들 (Sytem.Web.Optimization)은 번들 링크의 빌드 지문을 어떻게 생성합니까? <code>@Scripts.Render("~/JavaScripts")</code></p> <p>이가 재생성된다 <a href="https://developers.google.com/speed/docs/best-practices/caching" rel="nofollow">fingerprint</a> 포함 레이아웃 파일에 대한 링크를 생성 MVC-4

그래서 생성 된 링크가 보이는 같은 :

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

내가 지문이 (유사한 목적을 위해 사용하는) 생성되는 방법을 알고 싶습니다,하지만 Sytem.Web.Optimization 아직 오픈 소스 아니다 .

+1

내가 System.Web.Optimization에 대해 잘 모르지만, IIRC SquishIt가 파일 내용의 해시를 사용하여 이 지문을 만드십시오. 파일에있는 내용이 변경 될 때마다 핑거 프린팅의 목적을 변경하려는 경우 프로세스에 관련된 모든 파일을 해시하고 해시를 사용할 수 있습니다. 참고로 SquishIt 소스를 볼 수 있습니다 -> https://github.com/jetheredge/SquishIt – tucaz

답변

6

지문이 번들 바이트의 SHA256 해시를 사용하여 생성 한 후 인코딩 :

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

언제 어디서 이런 일이 발생합니까? 이런 일이 발생할 때마다 내 코드를 트리거 할 수있는 이벤트가 있습니까? –