我有我的脚本参考,我想在其中添加随机查询字符串,以便我可以阻止浏览器使用缓存版本。
<script src="dist/scripts/app.js?random=RandomString"></script>
我希望RandomString
成为Guid或其他什么,只是一些独特的东西。
有没有办法以顺畅的方式做到这一点?优选使用角度。否则我会拿走我得到的东西。
答案 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>