2013-05-09 4 views
5

、CSSに& JSファイルを圧縮するためのバンドルは、このカミソリの構文とレイアウトファイルにリンクすることができます。@Scripts.Render("~/JavaScripts")バンドル(Sytem.Web.Optimization)はバンドルリンクのビルドフィンガープリントをどのように生成するのですか? MVC-4では

これは上に再生成されfingerprintを含み、レイアウトファイル内のリンクを生成し、各アプリケーションビルドは、キャッシュ制御を支援します。

ので、生成されたリンクは次のようになります。

<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

いつ、どこでこれが起こりますか?これが起こるたびに自分のコードを起動できるようにするためのフックできるイベントはありますか? –

関連する問題