我在浏览器缓存方面遇到了一些问题。当css, js, image
文件更改了内容但没有更改名称时,我们必须发送到浏览器以下载新文件并丢弃缓存文件。
只需按 F5 或类似的东西,新文件不会被更新。
有没有办法强制浏览器忘记缓存并下载新版本的文件?
我在浏览器缓存方面遇到了一些问题。当css, js, image
文件更改了内容但没有更改名称时,我们必须发送到浏览器以下载新文件并丢弃缓存文件。
只需按 F5 或类似的东西,新文件不会被更新。
有没有办法强制浏览器忘记缓存并下载新版本的文件?
有些人有这个“问题”
这个和这个页面给了我一个想法,我想分享它。:)
. 我的目录结构是这样的:
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 ”,然后......缓存/浏览器会认为这是一个新文件..;)
我希望对某人有所帮助..任何建议都将受到欢迎