2016-09-06 2 views
6

현재 devs는 쉽게 함께 작업 할 수 없습니다. 축소 및 번들 디버깅이 해제되어 있고 캐시 버스터도 해제됩니다. 이것은 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 버전으로 업그레이드 한 후 WebBIOS와의 호환성 문제를 해결하기 위해 어셈블리 바인딩 리디렉션을 추가하면 문제의 조각이 완벽하게 작동합니다.

관련 문제