2016-09-06 8 views
6

Obecnie niemożliwe jest, aby twórcy łatwo ze sobą współpracowali. Podczas debugowania minimalizacja i pakowanie są wyłączone, podobnie jak pomijanie pamięci podręcznej. Prowadzi to do każdego twórcy, który dotyka javascripta, który musi otwierać każdy plik javascript i odświeżać zawartość, aby upewnić się, że nie ma w nim żadnych zmian.W jaki sposób buforujesz pojedynczo renderowane pliki podczas debugowania?

Znalazłem parę referencji, które moim zdaniem mogły zadziałać, ale żadna z implementacji jeszcze się nie sprawdziła.

Po pierwsze, należy zastosować transeform do poszczególnych pakietów za pomocą 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 

To wyglądało obiecująco, ale nie udało mi się go uruchomić. Próbowałem dodać nową instancję tej klasy do konstruktora każdego pakietu, a także próbowałem zapętlić wszystkie pakiety po ich utworzeniu. Moje punkty krytyczne są trafione i wydaje się, że zaktualizowano IncludedVirtualPath. Po kontynuowaniu renderowania ścieżki nie są aktualizowane.

Próbowałem również utworzyć niestandardową VirtualPathProvider i niestandardową VirtualFile i przeskoczyć ścieżkę VirtualPath, aby zwrócić poprawną wartość, ale ponownie, gdy była renderowana, ścieżka była pusta.

Czy zrobiłem coś nie tak z transformacją? Czy istnieje inny sposób wdrożenia tego?

Odpowiedz

1

Wygląda na to, że ten kod nie będzie działać z wersją 1.1.0 System.Web.Optimizations. Po aktualizacji do wersji 1.1.3 (i dodaniu przekierowania powiązania zespołu w celu rozwiązania problemu zgodności z Web Grease) fragment w pytaniu działa bezbłędnie.

Powiązane problemy