nginx缓存js不缓存html,http缓存策略-nginx只缓存js和css不缓存html

使用缓存,是提升web性能最重要的方式之一。

在开发单页面应用的时候,大量的单静态资源引用都是依赖于html这个文件的。例如:

html,css,js文件可以缓存 都可以缓存。设想如下场景:

该页面内嵌入到app(或者微信)打开,静态文件缓存到app里面了。第一次访问,打开没问题,为了提升第二次访问的性能。我们应该设置缓存。缓存超时时间为1d(随便举例)。

即一天内我们随便访问这个页面都是 会从缓存中取资源。

问题来了:假如我们刚好在一天内,服务端静态静态资源有更新,怎么办?

css,js文件有hash值,但是html文件没有,html如果不更新,那么我们在指定时间内永远没法取到更新后的js和css值。

所以,我们的缓存策略是:不缓存html,只缓存js 和 css。

基于nginx静态文件服务器设置如下:

location /hhhh/ {

root /home;

#index index.html index.htm

try_files $uri /h5/index.html;

if ($request_filename ~* .*\.(?:htm|html)$)

{

add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";

}

if ($request_filename ~* .*\.(?:js|css)$)

{

expires 7d;

}

if ($request_filename ~* .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$)

{

expires 7d;

}

}

至于其他的缓存策略,可以基于此再完善。

至于引用一个固定名称的,没有hash值的css或js,比如 abc.css 在服务端有更新,怎么处理这种缓存,我们后续再讨论。

(网页)JS和CSS不缓存方法,时间戳

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值