js和css文件自动在后缀处添加版本号(.NET)
2017-11-29 14:20
721 查看
基本用法
为防止浏览器缓存,一般会在js和css文件后添加版本号,但每次手工改将会很麻烦,因此可以考虑将文件修改时间作为版本号,并且自动添加到页面的js和css后缀上。先写一个获取文件名的公共方法:
public string GetFileTimeStampString(string filePath) { FileInfo fi = new FileInfo(Server.MapPath(filePath)); var timeStampString = fi.LastWriteTime.ToFileTime().ToString(); return timeStampString; }然后在aspx的页面中引用js或css的地方加上:
<script src="../Scripts/xxx.js?v=<%Response.Write(GetFileTimeStampString("../Scripts/xxx.js")); %>"></script>注意,GetFileTimeStampString参数的路径要和前面src的路径一致。
最后页面访问时会自动生成类似以下的内容,v的值会随着文件修改时间不同而不同。
<script src="../Scripts/xxx.js?v=131559771981760542"></script>
扩展用法
1、每次访问页面,都要读一次文件修改时间,这样频繁读取有些不太合理,因此考虑加上缓存,例如:public string GetFileTimeStampString(string filePath) { var obj = DataCache.GetCache(filePath); if (obj != null) return obj.ToString(); FileInfo fi = new FileInfo(Server.MapPath(filePath)); var timeStampString = fi.LastWriteTime.ToFileTime().ToString(); DataCache.SetCache(filePath, timeStampString, DateTime.Now.AddMinutes(10)); return timeStampString; }其中DataCache类是自己封装的,代码就不贴了。
这样每10分钟以上才会读一次文件修改时间。
2、版本号加密
使用v=131559771981760542的模式容易被猜到文件更新频次和版本,因此可以考虑将其加密,例如将它进行md5,或者其它hash算法。具体代码不就贴了,大家懂。
如果MVC的网站,可以参考以下文章: http://blog.csdn.net/zx13525079024/article/details/19153495
相关文章推荐
- HTML页面自动清理js、css文件的缓存(自动添加版本号)
- 为js和css文件自动添加版本号
- 为js和css文件自动添加版本号
- 用python给html里的css及js文件链接自动添加版本号
- asp.net后台代码动态引用添加JS和css文件
- 结合YUI Compressor在WebStrom添加Watcher实现编辑js(css)文件时自动压缩(包括自定义监听范围Scope)
- asp.net后台动态添加JS文件和css文件的引用实现方法
- asp.net后台动态添加JS文件和css文件的引用实现方法
- 如何在Asp.net 页面中添加CSS和JS的引用, 使得不是文件路径的限制
- asp.net后台如何动态添加JS文件和css文件的引用
- 在Asp.net中动态添加css文件,js文件,控件
- asp.net后台代码动态添加JS文件和css文件的引用
- CSS和js自动添加版本号
- Web项目发布 采用gulp压缩 JS CSS CSHTML ASPX HTML Image 给JS CSS自动添加版本号 强制浏览器刷新缓存
- 在Asp.net中动态添加css文件,js文件,控件
- asp.net后台如何动态添加JS文件和css文件的引用
- asp.net后台代码动态添加JS文件和css文件的引用
- 自动给CSS,JavaScript文件添加版本号
- 在Asp.net中动态添加css文件,js文件,控件
- asp.net后台代码动态引用添加JS和css文件