有些网站在ASPX页面用以下链接的形式调用并合并多个CSS或JS文件,如果不加上版本号,用户浏览器缓存,怎么实现更新呢?
<link rel="stylesheet" type="text/css" href="http://css.test.com/styles?res=index.css,common.css"/>一般是加版本号,例如http://css.test.com/index.css?v=1这种形式来通知客户端更新,像上面的方式,如果不加版本号怎么通知客户端CSS文件更新了呢?
<link rel="stylesheet" type="text/css" href="http://css.test.com/styles?res=index.css,common.css"/>一般是加版本号,例如http://css.test.com/index.css?v=1这种形式来通知客户端更新,像上面的方式,如果不加版本号怎么通知客户端CSS文件更新了呢?
解决方案 »
- label click事件
- 像csdn论坛上的文本编辑框该怎么做呢?
- DNN 登陆相关
- button点击无效的问题!
- 扩展控件,CollapsiblePanel的水平展开问题
- 急急!!!欢迎指教
- 那儿有ASP。NET反编译工具下载啊?以前的不能用了。谢谢
- 各位高手!帮忙出点注意吧!郁闷!我特别想成为一名写软件的程序员,我非常喜欢这个行业,但是我一直也进不去正规的软件公司!怎么办??
- 我用了 form 验证后,我的 Register.aspx (注册页)不能使用了。
- 我以前写的代码,现在怎样重用?
- 浅谈前台页面设计简话
- 读取动态生成的Table中的textbox输入数据,然后把数据加到sql数据库中
{
DateTime IfModifiedSince = DateTime.Parse(context.Request.Headers["If-Modified-Since"]);
if (IfModifiedSince > Now)
{
context.Response.StatusCode = 304;//文件没有修改,继续使用旧文件
return;
}
}其实看淘宝还有京东的实现 还是用版本号吧~
2.文件名 /indexv250.css
3.参数 http://css.test.com/styles?res=index.css,common.css&v=250
4.禁止缓存你总得选一个
禁止缓存的话,结合ETAG是不是就可以有请求,但不会从服务器下载文件?
如果你觉得每个页面都要修改麻烦,可以
http://css.test.com/index.css?v=<%=ConfigHelper.Version%>然后修改一下webconfig配置文件就可以了
GET /www/images/pic_yjstitbg.gif HTTP/1.1
Accept image/png, image/svg+xml, image/*;q=0.8, */*;q=0.5
Referer http://bbs.csdn.net/topics/390497328
Accept-Language zh-CN
User-Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; Touch; LENW8)
Accept-Encoding gzip, deflate
Host csdnimg.cn
If-Modified-Since Fri, 14 May 2010 12:09:41 GMT
DNT 1
Connection Keep-Alive
返回
键 值
响应 HTTP/1.1 304 Not Modified
Content-Type image/gif
Content-Length 2543
Expires Fri, 18 Apr 2014 13:34:41 GMT
Last-Modified Fri, 14 May 2010 12:09:41 GMT图片内容......
这里,浏览器在提交的时候提交了参数If-Modified-Since,服务器就会返回 304消息。这用不着什么“版本号”。
有什么方法可以解决?麻烦给个提示,谢谢。
而sp1234也给出了虽然我的代码的目的是生成图片,要浏览器缓存起来,不要每次都获取,
更你的需求相反。请研究下面三个参数If-Modified-Since
Expires Fri, 18 Apr 2014 13:34:41 GMT
Last-Modified Fri, 14 May 2010 12:09:41 GMTurl重写,或者HttpModule要每个请求都要经过asp.net处理
那么就是在请求头判断,在响应头修改上面所说的三个参数
一旦设置过期时间Expires小于现在,浏览器就会更新
https://a.alipayobjects.com/ar/??alipay.light.base-1.1.js,alipay.tracker-1.11.js这种怎么实现?
url重写还有阿里貌似自己实现一个框架~
可能那个Url含2个js文件,但且只使用一次请求~
在一次请求中下载2个js文件~mvc4
App_Start文件夹中的BundleConfig类
也干了同样的事情~
url重写还有阿里貌似自己实现一个框架~
可能那个Url含2个js文件,但且只使用一次请求~
在一次请求中下载2个js文件~mvc4
App_Start文件夹中的BundleConfig类
也干了同样的事情~
在.NET,直接合并两个文件,再以text/css流输出也行吧,并且设置相应的缓存策略etag,last modified但有一个问题,在IE10中,设置了etag,last modified,如果直接回车再次访问同一个页面,css,js直接返回200 ok(from cache),这样也不会向服务器发请求,这种如何解决?