我在浏览器缓存方面遇到了一些问题。当css, js, image
文件更改内容而不更改名称时,我们必须发送到浏览器下载新文件并丢弃缓存的文件。
只要按F5或类似的键,新文件就不会被更新。
有一种方法可以强制浏览器忘记缓存并下载新版本的文件?
一些人有这个"问题"
This和This页面给了我一个想法,我想分享一下。:)
。我的目录结构是这样的:
website/
|- libs/
|- css/
|- js/
|- imgs/
|- system/
|- site/
|- .htacces
|- index.php
因此,我们可以使用.htacces
文件来"愚弄"浏览器,如下所示:
RewriteRule ^libs'.v[0-9]{1,}(.*) libs/$1
RewriteRule ^(.*)'.v[0-9]{1,}'.css$ $1.css
并且,在html
文件上使用以下内容:
<link rel="stylesheet" type="text/css" media="all" href="path/to/libs/css/style.v2.css" />
<script type="text/javascript" src="path/to/libs/js/javascripts.v1.js"></script>
<img src="path/to/libs/imgs/logo.v5.png" alt="Logo" />
或
<link rel="stylesheet" type="text/css" media="all" href="path/to/libs.v1/css/style.css" />
<script type="text/javascript" src="path/to/libs.v1/js/javascripts.js"></script>
<img src="path/to/libs.v1/imgs/logo.png" alt="Logo" />
这对我来说很好。当我更改文件时,我只是add
或change
.v
后面的数字,比如:.v1
、.v2
原因:这个技巧让浏览器看到"http://www.mydomain.com/libs/css/style.v1.css"并且..缓存/浏览器将相信这是一个新文件.;)
我希望能帮助别人。。任何建议都将是欢迎