首页 新闻 会员 周边 捐助

请教一个 关于浏览器缓存的问题

0
悬赏园豆:50 [待解决问题]

我想把 项目里的静态文件 在浏览器进行缓存 思路是:

1、配置文件 配置哪些类型文件需要缓存

2、写个过滤器 过滤所有的get请求 匹配 哪些请求需要做缓存

但是问题来了:

                当服务器端的文件改动时 客户端缓存不及时更新

查了资料说是用文件版本号来解决但是怎么解决呢?

例如用:index.js?v=1 

这个怎么动态 控制呢 ?不可能手动改的吧!

lowerui的主页 lowerui | 初学一级 | 园豆:138
提问于:2013-01-29 12:18
< >
分享
所有回答(4)
0

在web.config配置一个版本号比如,<add key="v" value="0.1">

比如你原来请求地址是index.js?v=从config读取V值

你服务器文件改动后,你把config的值变动一下就行了

Rich.T | 园豆:3440 (老鸟四级) | 2013-01-29 12:39

但是 我有好多文件需要版本号,这样的话config变一次所有的都变了

支持(0) 反对(0) lowerui | 园豆:138 (初学一级) | 2013-01-29 16:57

@不会飞的菜鸟: 

定义多个变量,如果觉得多个变量又很麻烦,那就让他变也没关系,因为你服务器文件不会经常改啊

支持(0) 反对(0) Rich.T | 园豆:3440 (老鸟四级) | 2013-01-29 16:58
0

缓存依赖,可以依赖文件? 可以查查

Qlin | 园豆:2403 (老鸟四级) | 2013-01-29 12:56
0

如果你的文件是有版本控制的(比如SVN),那最好自己写方法或者工具来取svn的版本号替换引用的静态文件版本...

这里有点思路可以试试看:

http://www.cnblogs.com/aNd1coder/archive/2011/08/27/2155343.html

三桂 | 园豆:3565 (老鸟四级) | 2013-02-19 13:05
0

你只需要启用Html5的Offline功能就可以实现了,在页面加上

<html manifest="/cache.manifest">  
...

然后将需要缓存的文件定义放在cache.manifest内

CACHE MANIFEST  

/index.js?v=  

 

Ray Liang | 园豆:426 (菜鸟二级) | 2014-07-26 19:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册