我正在构建一个Web应用程序。我正在链接到单独的css和js文件,我想管理缓存。 如果脚本js或样式css文件已更新,则强制重新加载并替换该文件,否则从缓存中获取文件。 那可能吗?怎么做?
答案 0 :(得分:0)
作为默认的css和javascript文件在客户端浏览器中兑现。当你更新你的css或javascript文件时,只需要更新并增加HTML标题中的版本,如下所示:
foo.css?ver=002
foo.js?ver=002
答案 1 :(得分:0)
这在很大程度上取决于服务器,因为浏览器中的缓存基于服务器发送的一组标头,包括Cache-Control
,Expires
,Etag
以及它的方式处理来自客户端的标头,包括If-Modified-Since
和If-None-Match
。这允许浏览器尝试仅在已经拥有最新版本的情况下请求服务器返回文件;如果基于标题,服务器确定浏览器已经拥有最新版本,则可以返回304 not modified
的响应。
你也可以使用" cache buster"查询参数为sia建议:向文件名添加查询参数,大多数服务器将忽略该参数,但您可以使用该参数指示同一文件的新版本。虽然查询参数不允许您控制下载的版本,但它将成为浏览器缓存中密钥的一部分,因此当参数更改时,浏览器将再次下载该文件。
how HTTP caching works over on MDN有一个很好的概述。