我正在修改网站的外观(CSS修改),但由于烦人的持久缓存,无法在Chrome上看到结果。我尝试了Shift+刷新,但不起作用。
如何临时禁用缓存或以某种方式刷新页面以查看更改?
我正在修改网站的外观(CSS修改),但由于烦人的持久缓存,无法在Chrome上看到结果。我尝试了Shift+刷新,但不起作用。
如何临时禁用缓存或以某种方式刷新页面以查看更改?
当前回答
不确定您正在使用什么,但如果您正在使用ASP.Net,您可以执行以下操作,这就像一个魅力:
<link href="@Url.Content("~/Content/Site.css")?time=@DateTime.Now" rel="stylesheet" />
基本上,每次运行文件时,它都会自动将日期和时间附加到文件的末尾,这意味着由于文件名在技术上不同,因此您再也不用担心它会被缓存。
其他回答
如果你不想编辑Chrome的设置,你可以使用匿名模式来获得同样的结果。
嘿,如果您的网站使用的是PHP,那么请在html页面的开头放置以下PHP代码片段:
//dev versioning - stop caching
$rand = rand(1, 99999999);
现在,在脚本或链接元素中加载CSS或JS文件等资源的任何地方,都会在附加“?”后将生成的随机值附加到请求URL通过PHP连接到URI:
echo $rand;
就是这样!无论哪种浏览器,都不会再缓存您的网站。
当然,在发布之前删除代码,或者简单地将$rand设置为空字符串以允许再次缓存。
在修复错误之前,您可以使用Clear Cache Chrome插件,也可以为其设置键盘快捷方式。
安装后,右键单击并转到选项:
选中清除数据后自动重新加载活动选项卡:
选择时间段的所有内容:
然后,您可以转到菜单=>工具=>扩展:
单击底部的键盘快捷键:
并设置键盘快捷键,例如Ctrl+Shift+R:
按F12拉起Chrome开发者控制台,然后(在控制台打开的情况下):右键单击(或按住左键)浏览器顶部的重新加载按钮,然后选择“清空缓存和硬重新加载”
这将超越“硬重新加载”,完全清空缓存,确保通过javascript等下载的任何内容也将避免使用缓存。你不必打乱设置或任何事情,这是一个快速的一次性解决方案。
一般来说,“烦人”的缓存的问题在于框架:)。让我们来看看细节。大多数框架都在.htaccess(os equivalent)中使用去主动重定向所有请求到框架“索引”,
但它同时排除应用程序直接请求的文件和目录。
(例如,对于.htaccess,典型指令如下:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
)
因此,作为图形文件的所有.js、.css文件都不由框架“索引”处理。
这些文件通常在开发期间最常更改。
这就是为什么缓存控件取消激活不应该放在框架“索引”中的原因。
它应该放在.htaccess中。
F.e.用于开发过程:
Header set Cache-Control "no-store, no-cache, must-revalidate"
Header set Pragma "no-cache"
(或者对于连续的工作版本,请使用“Etag”指令-在HTTP参考中查看更多信息。注意,Etag不是用于开发的。
在.htaccess中,没有直接的方法生成用于ETag的随机数(或快速变化的序列,如日期UTC),因为-正如我之前提到的-这不是提供的)。
希望这有助于节省时间。