我正在使用PHP开发一个简单的网站。
开发配置: WAMP
生产配置: LAMP
在测试时,我更改了我的CSS文件,但是当我重新加载页面时,我的浏览器(不确定)仍然使用旧的缓存css。
我做了一些谷歌搜索,找到了我已经尝试过的不同解决方案
css/main.css?78923
Ctrl + R
(在Firefox中)强制获取资源Clear Cache
Firefox插件。如果没有这个工作,我做了一些谷歌搜索,在那里我遇到了一个堆栈页面(here),有人建议Apache缓存资源。所以,问题不在于Firefox,而在于服务器。那家伙还提出了一个我不理解的解决方案(我是新手)
我的问题分为两部分:
PS:在堆栈问题中复制和粘贴解决方案(我上面作为链接的那个)不起作用:(
答案 0 :(得分:16)
我曾经遇到过这个问题几次,并且通常会通过调用我的css来解决生产网站上的问题
<link rel="stylesheet" type="text/css" href="style.css?v=1" />
当您推出更新时,只需将v=1
更改为v=2
,它会强制您的所有用户浏览器获取新的样式表。这也适用于脚本文件。如果您在Google
上查看来源,您会发现他们也使用此方法。
答案 1 :(得分:8)
我曾经遇到过与网络安装造成的LAMP开发系统相同的问题。我设法通过将这两行添加到我的apache conf中来摆脱它。
EnableMMAP off
EnableSendfile off
答案 2 :(得分:1)
在我的php页面中,我通常会将当前日期时间添加到css href:
的末尾<link rel="stylesheet" type="text/css" href="style.css?<?php echo date('l jS \of F Y h:i:s A'); ?>" />
参考:Here
答案 3 :(得分:1)
我知道这是一个古老的问题,但我刚刚遇到过这个并且有一些相同的问题。这是一种不在任何文件上保留缓存的快速方法:
<link rel="stylesheet" href="css/style.css?<?=time()?>">
每次加载页面时,使用帮助都会获得最新版本。
答案 4 :(得分:0)
无论如何,我没有明白这一点。对于开发,只需禁用浏览器缓存或按Ctrl + r。
即可答案 5 :(得分:0)
我在资产文件(js,css等)中更改内容时总是使用httcacheclean