在脚本src路径上生成随机查询字符串

时间:2016-05-24 15:07:02

标签: javascript jquery angularjs

我有我的脚本参考,我想在其中添加随机查询字符串,以便我可以阻止浏览器使用缓存版本。

<script src="dist/scripts/app.js?random=RandomString"></script>

我希望RandomString成为Guid或其他什么,只是一些独特的东西。

有没有办法以顺畅的方式做到这一点?优选使用角度。否则我会拿走我得到的东西。

2 个答案:

答案 0 :(得分:1)

<script src="dist/scripts/app.js?random={{getRandom()}}"></script>

控制器

$scope.getRandom = function() {
return Math.random();
}

答案 1 :(得分:0)

这是我在C#和.cshtml解决方案中的方法...

我们有一个类将为此生成一个查询字符串,并将其保留为静态字符串。这样我们可以保持相同的价值,直到应用程序池被回收为止,这样浏览器就不必每次都重新加载资产。

public static class UrlHelper
{
    public static string AssetReloadQueryString
    {
          get
          {
            if (string.IsNullOrEmpty(_assetReloadQueryString))
            {
                _assetReloadQueryString = $"version={Guid.NewGuid().ToString()}";
            }

            return _assetReloadQueryString;
          }
       }

        private static string _assetReloadQueryString;
      }
}

很明显,如果您要做要在每次加载单个页面时强制重新加载,则只需返回

$"version={Guid.NewGuid().ToString()}"

并且不必费心将其放入静态字符串中。

然后您将javascript和css文件的src设置如下:

<script src="~/assets/js/forms.js?@Project.UrlHelper.AssetReloadQueryString"></script>