Html 如果缓存日期超过某个日期,则告诉浏览器更新缓存
是否有一个meta标记或我可以使用的东西,告诉浏览器在某个日期之前不要使用缓存 e、 gHtml 如果缓存日期超过某个日期,则告诉浏览器更新缓存,html,css,caching,metadata,browser-cache,Html,Css,Caching,Metadata,Browser Cache,是否有一个meta标记或我可以使用的东西,告诉浏览器在某个日期之前不要使用缓存 e、 g 如果缓存是旧的,则需要下载所有新的Javascript、CSS、图像等 我对该站点进行了大量更新,然后它会把仍然有缓存的任何人搞砸(你不能指望他们知道按ctrl+f5或ctrl+r)。我通常只在最后添加一个get参数和我向他们演示的脚本版本 因此,如果您的javascript位于 www.example.com/script.js 使用url www.example.com/script.js?foo=
如果缓存是旧的,则需要下载所有新的Javascript、CSS、图像等
我对该站点进行了大量更新,然后它会把仍然有缓存的任何人搞砸(你不能指望他们知道按ctrl+f5或ctrl+r)。我通常只在最后添加一个get参数和我向他们演示的脚本版本 因此,如果您的javascript位于
www.example.com/script.js
使用url
www.example.com/script.js?foo=1
每次递增foo的值时,这将强制浏览器重新提取脚本。这是从.htaccess文件配置的,带有ExpiryDates (下面是我的例子。我的主机运行一个PHP/Apache服务器-000webhost.com)
#启用过期
过期于
#我的favicon
过期按类型图像/x图标“访问加1年”
#图像
ExpiresByType image/gif“访问加1个月”
ExpiresByType图像/png“访问加1个月”
ExpiresByType图像/jpg“访问加1个月”
过期按类型图像/jpeg“访问加1个月”
ExpiresByType文本/css“访问加1周”
#Javascript
ExpiresByType应用程序/javascript“访问加1年”
没有meta标记用于仅在特定日期后设置缓存,但如果您使用的是任何服务器语言(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
}
?>
最近我一直在思考这个问题。我最近开始使用传单地图和GEOJSON(一个包含地理信息的JSON文件)。一些GEOJSON文件相当大,所以如果数据没有更改,我不想强制重新下载数据,但在我开发地图时,我可能会修改其他JS、GEOJSON或CSS文件,因此我希望下载修改后的数据。我只是希望新的数据在那里。所以,我想到了这个场景:
使用此方法应仅加载更改的数据,而不强制重新下载未更改(和缓存)的数据。不能强制浏览器重新使用缓存。你可以发挥创意,将缓存过期日期设置为过去或其他时间,但仅此而已。在商业网络上,我相信你可以通过GPO实现这一点。你可以尝试完全关闭缓存这是问题的最佳答案。它允许您在需要时有效地使缓存无效,而不依赖于以前设置的头。唯一的缺点是您的页面不可从文件系统测试,而只能从Web服务器测试,因为文件系统确实将?param=bla识别为文件名的一部分。你可以通过在文件名中加入一个版本号来解决这个问题,但这还有其他缺点:这可能意味着你必须在很多html页面中更改css标记,或者你需要使用服务器端包含系统来解决这个问题,这也需要一个服务器。这个方法如何处理特定的过期日期,按照OP的要求?
<?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
}
?>