2016-09-06 3 views
6

現在、開発者は簡単に一緒に作業することは不可能です。ミニネーションとバンドルのデバッグはオフになり、キャッシュ・バスターもオフになります。これは、javascriptに触れて、すべてのjavascriptファイルを開いて強制的に更新する必要があるすべての開発者が、欠落している変更がないことを確認することにつながります。どのようにデバッグ中にキャッシュバストの個別レンダリングファイルを作成しますか?

私は思ったようないくつかの参考文献を見つけましたが、まだ実装されていないものはありません。

最初は、IBundleTransformを介して個々のバンドルにトランズフォームを適用することです。

Public Class DebugCacheBuster 
    Implements IBundleTransform 

    Public Sub Process(context As BundleContext, response As BundleResponse) Implements IBundleTransform.Process 
     If BundleTable.EnableOptimizations Then 
      Exit Sub 
     End If 

     For Each file As BundleFile In response.Files 
      file.IncludedVirtualPath &= GetPathHash(HostingEnvironment.MapPath(file.IncludedVirtualPath)) 
     Next 
    End Sub 
End Class 

これは有望だったが、私はそれを動作させることができなかった。私はこのクラスの新しいインスタンスを各バンドルのコンストラクタに追加しようとしました。バンドルが作成された後、バンドルのすべてをループしてみました。私のブレークポイントがヒットし、IncludedVirtualPathが更新されたようです。レンダリングを続けると、パスは更新されません。

また、カスタムVirtualPathProviderとカスタムVirtualFileを作成しようとしましたが、正しい値を返すためにVirtualPathをオーバーロードしましたが、レンダリングしたときにパスが裸であった。

トランスフォームに何か問題がありましたか?これを実装する別の方法がありますか?

答えて

1

明らかに、このコードはSystem.Web.Optimizationsのバージョン1.1.0では動作しません。バージョン1.1.3にアップグレードした後、Webグリースとの互換性の問題を解決するためにアセンブリバインディングのリダイレクトを追加すると、問題のスニペットは完璧に機能します。

関連する問題