我们有一个包含多个aspx和cshtml页面的生产应用程序。这些页面指的是经常更改的多个javascripts。
由于我们正在使用CDN,因此每当对任何javascript文件进行更改时,我们都会在所引用的所有aspx / cshtml中手动对其进行版本控制。 例如: 如果abc.aspx有[script src =" abc.js?v = 1"]并且我们对abc.js进行了更改,我们手动必须更改abc.aspx,如[script src =" abc.js v = 2"?]
使用几个aspx和javascript / css文件变得非常困难。
我在这里读到: force browsers to get latest js and css files in asp.net application
但建议的方法中几乎没有问题:
基本上我们希望避免手动对javascript引用进行版本控制,并构建足够智能的内容来检测我的解决方案中是否有任何javascript发生了变化,它会自动更新其相应的引用。
答案 0 :(得分:0)
我猜您可以使用RegisterClientScriptInclude
来实现这一目标。像下面的东西(我还没有测试过,所以你可能需要相应调整它)
var physicalPath = context.Server.MapPath(filename);
var version = "?v=" + new System.IO.FileInfo(physicalPath).LastWriteTime.ToString("yyyyMMddHHmmss");
Page.ClientScript.RegisterClientScriptInclude("script", filename + version);
您可以在检查PhysicalPath之前添加缓存层。