目前,开发人员不可能轻松地一起工作。在调试时,我们的代码缩小和捆绑被关闭,缓存破坏器也是如此。这导致每个接触 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 以返回正确的值,但同样,当它呈现时,路径是裸露的。
我在转换中做错了吗?还有其他方法可以实现吗?