目前,开发人员不可能轻松地协同工作。虽然关闭了调试缩小和捆绑,但缓存破坏者也是如此。这导致每个触发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
这看起来很有希望,但我无法让它发挥作用。我尝试将这个类的新实例添加到每个bundle的构造函数中,并且我还尝试在创建它们之后循环遍历所有bundle。我的分数被点击,IncludedVirtualPath
似乎已更新。继续渲染后,路径不会更新。
我还尝试创建自定义VirtualPathProvider
和自定义VirtualFile
并覆盖VirtualPath以返回正确的值,但再次渲染时,路径是裸露的。
我是否对转换做错了什么?还有其他方法可以实现吗?
答案 0 :(得分:1)
显然,此代码不适用于System.Web.Optimizations的1.1.0版。升级到1.1.3版本(并添加程序集绑定重定向以解决与Web Grease的兼容性问题)后,问题中的代码段完美无瑕。