当我对CSS文件进行任何更改时,更改不会反映在浏览器中。我该如何解决这个问题?
答案 0 :(得分:49)
周?尝试打开样式表本身(通过在浏览器的地址栏中输入其地址)并按 F5 。如果它仍然没有刷新,那你的问题就在其他地方。
如果您更新样式表并希望确保在每个访问者的缓存中刷新它,那么一种非常流行的方法是将版本号添加为GET参数。这样,样式表在必要时会刷新,但不会更频繁。
<link rel="stylesheet" type="text/css" href="styles.css?version=51">
答案 1 :(得分:25)
此修复程序称为“硬刷新” http://en.wikipedia.org/wiki/Wikipedia:Bypass_your_cache
在大多数Windows和Linux浏览器中:按住Ctrl并按F5。
在Apple Safari中: 按住⇧Shift并单击“重新加载”工具栏按钮。
在Chrome和Firefox for Mac中: 按住⌘Cmd+⇧Shift并按下R。
答案 2 :(得分:17)
强制CSS重新加载的一个好方法是:
<link href='styles.css?version=1' rel='stylesheet'></link>
然后在更改CSS时增加版本号。然后浏览器将遵守。我相信StackOverflow使用这种技术。
答案 3 :(得分:11)
我总是使用 Ctrl + Shift + F5 出于习惯,它应强制进行全面刷新,包括绕过任何http代理你可能正在经历。
答案 4 :(得分:6)
在Windows中执行 Shift + F5 。缓存真的让这种东西感到沮丧
答案 5 :(得分:3)
我有这个问题,我在两天的最佳时间里摸不着头脑。
原来我完全忘了我在我正在测试的域名上设置了CloudFlare。
CloudFlare缓存您的JavaScript和CSS。打开开发模式和BAM!
说真的......整整两天。
答案 6 :(得分:2)
在我发现自己的懒惰解决方案之前遇到这个问题(根据其他人的建议)。如果您的<head>
内容通过php解释器应该会有所帮助。
要在每次更改文件时强制下载文件,您可以在结尾处的问号后添加此文件的文件字节大小。
<link rel="stylesheet" type="text/css" href="styles.css?<?=filesize('styles.css');?>">
编辑:正如评论中所建议的那样,filemtime()
实际上是一个更好的解决方案,只要您的文件有正确更新的修改时间(我,我自己,在使用远程文件时遇到过这样的问题):
<link rel="stylesheet" type="text/css" href="styles.css?<?=filemtime('styles.css');?>">
答案 7 :(得分:1)
由于10年后,我发现该线程存在相同的问题,因此我也将添加自己的解决方案。我大多数时候都使用PHP,而不是要求用户按不同寻常的按钮刷新页面,或者我自己记得修改嵌入在链接中的版本号,而是使用filemtime()函数来获取修改时间。 css文件(以unix时间戳记),然后使用THAT号作为参数。
$FILE_TIME = filemtime("main.css");
$CSS_LINK = "main.css?version=$FILE_TIME";
虽然显示如下网址:
http://example.com/blah/main.css?version=1602937140
这完全禁用了缓存,因为每次刷新页面时,它都会认为它需要再次获取CSS文件(无论是否更改)……但这要比忘记手动更新此技巧并浪费时间来感到沮丧为什么这是不对的。您始终可以将其从生产服务器中删除。
如果您使用的是纯HTML,则可以设计一个javascript包装器或类似的包装器,但这可能比它的价值还要麻烦。
答案 8 :(得分:0)
您是否尝试过将新版本的CSS重命名为CSSv2.css,然后指示您的页面使用它?如果这解决了陈旧文件问题,那么您只是遇到了非刷新文件。如果没有,你就会遇到更大的问题。
答案 9 :(得分:0)
这听起来像你的浏览器正在缓存你的CSS。如果您使用的是Firefox,请尝试使用 Shift -Reload加载页面。
答案 10 :(得分:0)
这是一个本地自定义CSS文件吗?这是你的网站吗?也许你应该清除你的缓存。
最后一个CSS声明也优先。
答案 11 :(得分:0)
答案 12 :(得分:0)
Ctrl + F5 解决方案在Chrome中不适用于我。
但是我发现了How to Clear Chrome Cache for Specific Website Only (3 Steps):
- 加载页面后,打开Chrome开发者工具(右键单击>检查)或(菜单>更多工具>开发者工具)
- 接下来,转到Chrome浏览器中的“刷新”按钮,然后右键单击“刷新”按钮。
- 选择“清空缓存并进行硬刷新”。
希望这个答案对某人有帮助!
答案 13 :(得分:0)
发生这种情况的原因是因为文件存储在浏览器的“缓存”中-因此浏览器无需再次请求工作表。 HTML 链接到的大多数文件都会发生这种情况,无论它们是 CDN 还是在您的服务器上,例如样式表。硬刷新将重新加载页面,并将新的 GET 请求发送到服务器(并在需要时发送到外部b)。
您还可以使用以下键盘快捷键在大多数浏览器中清空缓存。
Safari: Cmd + Alt + e
Chrome和Edge: Shift + Cmd + 删除(Mac)和 Ctrl + Shift + Del (Windows)
答案 14 :(得分:-1)
我遇到了同样的问题。重命名文件对我有用。