是否有元标记或我可以使用的东西告诉浏览器不要使用某个日期之前的缓存。
例如
<meta "only use cache if cache is AFTER 4/4/2013">
如果缓存是旧的,则需要下载所有新的 Javascript、CSS、图像等。
我对站点进行了很多更新,然后它搞砸了仍然有缓存的任何人(你不能指望他们知道按 ctrl+f5 或 ctrl+r)。
是否有元标记或我可以使用的东西告诉浏览器不要使用某个日期之前的缓存。
例如
<meta "only use cache if cache is AFTER 4/4/2013">
如果缓存是旧的,则需要下载所有新的 Javascript、CSS、图像等。
我对站点进行了很多更新,然后它搞砸了仍然有缓存的任何人(你不能指望他们知道按 ctrl+f5 或 ctrl+r)。
我通常只是在最后添加一个 get 参数以及我向他们展示的脚本版本
所以如果你有你的javascript
www.example.com/script.js
使用网址
www.example.com/script.js?foo=1
当我每次都增加 foo 的值时,这会强制浏览器重新获取脚本。
仅在特定日期之后设置缓存没有元标记,但如果您使用任何服务器语言(PHP、.NET、ruby、phyton),您可以将缓存控制设置为无缓存,然后动态设置标题以启动在某个日期后缓存。
例如使用 PHP:
<?php
$cdate = date('Ymd');
if ($date > '20130404') {
header('Cache-Control: max-age=28800'); //cache lifetime to 8 hours
} else {
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
}
?>
这是从带有 ExpiryDates 的 .htaccess 文件配置的
(下面是我的示例。我的主机运行 PHP / Apache 服务器 - 000webhost.com)
<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On
# My favicon
ExpiresByType image/x-icon "access plus 1 year"
# Images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
# Javascript
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
最近我一直在思考这个问题。我最近开始使用 Leaflet 地图和 GEOJSON(一个带有地理信息的 JSON 文件)。一些 GEOJSON 文件非常大,所以如果数据没有更改,我不想强制重新下载数据,但是当我正在开发地图时,我可能会修改其他 JS、GEOJSON 或 CSS文件,所以我希望下载修改后的数据。我只是希望新数据在那里。所以,我想出了这个场景:
使用此方法应仅加载更改的数据,而不是强制重新下载未更改的(和缓存的)数据。