Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从aspx和cshtml页面刷新javascript引用_Javascript_Asp.net_Asp.net Mvc_Webforms_Cdn - Fatal编程技术网

从aspx和cshtml页面刷新javascript引用

从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文

我们有一个带有多个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文件来说变得非常困难

我在这里读到:

但在建议的方法中几乎没有问题:

  • 看起来解决方案会针对用户提出的每个请求更新js版本。这是不对的。因为我们的网站是以性能为导向的,所以我们需要缓存它,除非它被更改
  • 如果它的@Html.includeversonedjs(“/MyJavascriptFile.js”)只查找mvc。什么是web表单版本来执行此操作

  • 基本上,我们希望避免手动控制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);