我正在尝试在本地服务器上工作,但每次想要看到css规则的更改时,都需要清除缓存。
有没有方法可以控制Google Chrome的缓存?
我正在尝试在本地服务器上工作,但每次想要看到css规则的更改时,都需要清除缓存。
有没有方法可以控制Google Chrome的缓存?
开发者工具
设置
(右下角或使用F1
快捷键)在开启开发者工具时禁用缓存
https://developers.google.com/chrome-developer-tools/docs/settings#general
CTRL+F5:通过清除Google Chrome缓存来刷新页面。
按照这里的解决方案,帮助我重新加载CSS:https://wpreset.com/force-reload-cached-css/
不要请求文件,而是执行以下操作:
<link rel="stylesheet" href="~/css/variabledocument.css" type="text/css" />
通过在文件末尾添加参数(参数名称并不重要)获取请求ID:
<link rel="stylesheet" href="~/css/variabledocument.css?refreshcss=1" type="text/css" />
这将请求新的CSS文件。每当您更改CSS文件时,只需更改参数名称、值或两者,服务器就会再次请求它。
当您无法控制客户端浏览器并且不需要他们采取任何行动时,这非常有用。
<link rel="stylesheet" href="~/css/variabledocument.css?BD=20201209094326" type="text/css" />
对于具有相同问题的脚本文件也适用。 - DarrenMB更多工具 > 开发者工具
然后在浏览器上右击刷新按钮。
你会得到三个选项。选择“清空缓存并强制刷新”。
这只会影响当前活动的标签页。
在Chrome 61.0.3163.100上,按下Shift-F5重新加载页面对我有用。
我喜欢SylvainB2347的解决方案,通过在include语句中添加一些参数来实现。这确实使Chrome重新加载资源,因为它认为资源已经发生了改变。
我只是想稍微优化一下这个解决方案,使其自动化但不破坏缓存原则。
我的解决方案是使用PHP函数filemtime(filename),它返回最后一次内容修改的时间戳。我将其用作:
<link rel="stylesheet" href="/index.css?foo=<?php echo filemtime("index.css"); ?>">
这将在HTML中生成以下内容:
<link rel="stylesheet" href="/index.css?foo=1673508035">
index.css
时,时间戳会改变。这样,浏览器只有在自上次访问以来被修改后才会强制重新加载资源。而且我不必手动重写任何内容。