从aspx和cshtml页面刷新javascript引用
我们有一个带有多个aspx和cshtml页面的生产应用程序。这些页面引用了频繁更改的多个Java脚本 由于我们使用的是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文件来说变得非常困难 我在这里读到: 但在建议的方法中几乎没有问题:从aspx和cshtml页面刷新javascript引用,javascript,asp.net,asp.net-mvc,webforms,cdn,Javascript,Asp.net,Asp.net Mvc,Webforms,Cdn,我们有一个带有多个aspx和cshtml页面的生产应用程序。这些页面引用了频繁更改的多个Java脚本 由于我们使用的是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文
基本上,我们希望避免手动控制javascript引用的版本,并构建足够智能的东西来检测我的解决方案中是否有任何javascript发生了更改,它也会自动用新版本更新其相应的引用。我想您可以通过使用
RegisterClientScriptInclude
来实现这一点。类似于下面的内容(我还没有测试它,所以您可能需要相应地调整它)
您可以在检查PhysicalPath之前添加缓存层。为什么要向下投票。请评论!
var physicalPath = context.Server.MapPath(filename);
var version = "?v=" + new System.IO.FileInfo(physicalPath).LastWriteTime.ToString("yyyyMMddHHmmss");
Page.ClientScript.RegisterClientScriptInclude("script", filename + version);