js和css文件自动在后缀处添加版本号(.NET)
来源:互联网 发布:工业组态软件 编辑:程序博客网 时间:2024/06/01 09:30
基本用法
为防止浏览器缓存,一般会在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
阅读全文
0 0
- js和css文件自动在后缀处添加版本号(.NET)
- 为js和css文件自动添加版本号
- CSS和js自动添加版本号
- HTML页面自动清理js、css文件的缓存(自动添加版本号)
- CSS JS 添加版本号
- 一个通用自动处理 js版本号和css 版本号、自动压缩 js,css、自动清理网页注释工具
- 添加css和js文件
- 添加css和js文件
- js,css文件版本号控制
- 引入JS和CSS文件加版本号的作用
- 在Asp.net中动态添加css文件,js文件,控件
- gulp自动添加静态文件版本号方案
- Asp.net合并JS,Css文件,只要在路径中添加要压缩的文件名
- 前端静态资源版本更新与缓存之——通过gulp 在原html文件上自动化添加js、css版本号
- 前端静态资源版本更新与缓存之——通过gulp 在原html文件上自动化添加js、css版本号
- 前端静态资源版本更新与缓存之——通过gulp 在原html文件上自动化添加js、css版本号
- 前端静态资源版本更新与缓存之——通过gulp 在原html文件上自动化添加js、css版本号
- JS、CSS 文件的版本号控制
- 二叉树的直径,即二叉树的节点之间最大距离
- [bzoj3083][树链剖分][lca]遥远的国度
- mysqldiff实现MySQL数据表比较
- python基础爬虫(非框架)
- sql语句中as的用法和作用
- js和css文件自动在后缀处添加版本号(.NET)
- MySQL| MySQL关键字和保留字
- 打包布署“Windows Installer 3.1”中“PublicKey”特性的值与文件".."的值不匹配
- struts2.5 从老版本升级到2.5版本
- LeetCode基础--二叉树--ZigZag遍历
- 单例模式(java实现)
- 如何在CentOS7环境下安装Docker
- Linux---之EOF
- java的表格导出功能