目前,开发人员不可能轻松地一起工作.虽然关闭了调试缩小和捆绑,但缓存破坏者也是如此.这导致每个触发javascript的开发者必须打开每个javascript文件并强制刷新以确保它们不会丢失更改.
我找到了一些我认为可能有用的参考文献,但是没有一个实现已经解决了.
第一种是通过一个变换器将变换器应用于各个Bundles 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
Run Code Online (Sandbox Code Playgroud)
这看起来很有希望,但我无法让它发挥作用.我尝试将这个类的新实例添加到每个bundle的构造函数中,并且我还尝试在创建它们之后循环遍历所有bundle.我的突破点被击中并且IncludedVirtualPath
似乎已经更新.继续渲染后,路径不会更新.
我还尝试创建自定义VirtualPathProvider
和自定义VirtualFile
并覆盖VirtualPath以返回正确的值,但再次,当它呈现时,路径是裸的.
我是否对变换做错了什么?还有其他方法可以实现吗?