前端静态文件 CDN 部署
wanxger1 分钟阅读
放在 CDN 内
放在不同的 CDN 内
HTML 放在 A 域名下,其他的静态资源放在 B 域名下。
发现版本有更新应自动重新加载
###参考 为什么微信会缓存,是因为服务器的响应没有明确告诉浏览器:不准缓存(no-cache、no-store、Expires、max-age等)。而只是告诉浏览器一些标记信息(ETag、Modified),允许浏览器缓存,但浏览器需要每次访问缓存之前先发请求来询问服务器是否对内容由更改。
正常一点的浏览器,会按标准主动发请求,携带标记询问服务器内容是否变化(If-Modified-Since、If-Unmodified-Since、If-None-Match、If-Match),服务器没变则返回304。但微信做为牛逼的“天之骄子”,偏偏就不发请求,任性的继续使用可能过期的缓存的内容。怎么解决呢?
1、如果微信已经缓存,且如果是单页面,可能有片段请求或js发出,则可以在某个js或片段的响应里加上“满足某些条件时主动location.reload()”,使得浏览器【主动刷新页面】。此时请求就可以发出来,响应最新的内容。 2、从服务器端来说,如果需要防止后续再被缓存,则需要在服务器返回的响应里,明确告知浏览器不要缓存(no-cache、no-store、Expires、max-age等)