Как вы Cache-Bust индивидуально визуализированных файлов при отладке?
В настоящее время разработчики не могут легко работать вместе. Во время отладки минификация и связывание отключены, так же как и кеш-буфер. Это приводит к тому, что каждому разработчику, который касается 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 ответ
По-видимому, этот код не будет работать с версией 1.1.0 System.Web.Optimizations. После обновления до версии 1.1.3 (и добавления перенаправления привязки сборки для решения проблемы совместимости с Web Grease) фрагмент в вопросе работает безупречно.