.net JS,CSS去缓存绑定版本号的几种方法
缓存问题看似简单,实则影响非常巨大。如果发生了缓存问题,后面的工作量真的不少。比如要处理投诉,要向用户解释,比如教用户怎么清缓存,尤其是很多上了年龄的员工,对计算机概念非常薄弱,稍微严格一点的公司,不允许安装软件,当无法远程协助时候,那个电话描述那个邮件各种截图。几乎上班全部要处理这些事情了。
总而言之,缓存问题要严肃对待,下面进入正题。
1.前端页面直接修改
<script src='testJS.js'></script>
改为
<script>
var timestamp1 = Date.parse(new Date());
document.write("<script src='testJS.js?v='" + timestamp1 + "><" + '/' + "script>");
</script>
2.<script type=”text/javascript“ src=”/js/test.js?v=<%=v%>“></script>
后端生成v,比较推荐这种方法。
因为使用的技术还是webform,所以此时这种写法会存在一个问题,当有部分js,css 是通过后端.cs 吐出绑定的话会编译报错。
var admin = new HtmlGenericControl("script");
admin.Attributes["type"] = "text/javascript";
admin.Attributes["src"] = "../js/admin.js";
Page.Header.Controls.Add(admin);

所以这时候我们需要将<%= 替换为 <%#
这样尽管不报错了,但是前端这个值并没有绑定。还需要在.cs 地方添加 Page.DataBind(); 然后才能有值
其他
css引用其实存在一个问题
<link type="text/css" href="test.css<%# strVersion %>"/>
加双引号这样写并不是绑定值了这时候,变成整个都是字符串了。所以解决办法就是把双引号去掉
浙公网安备 33010602011771号