出于某种原因,我无法在firefox或ie浏览器中使用新的css。
我使用php将所有css合并到一个文件中,然后像这样输出:
PHP文件:
header('Content-type: text/css');
readfile('layout.css');
readfile('a.css'); //jqueryUI
以下是我从HTML方面调用它的方式:
<link rel='stylesheet' href='stylesheet/css.php?v=1327523109' type='text/css' />
“v”查询字符串参数只是一个php time()函数,来自我在另一个搜索问题时获得的提示。希望time()会欺骗浏览器不加载缓存版本,但它无法正常工作并且仍在加载旧的CSS。
当我查看firebug的css文件时,它会显示旧的css文件。但是,如果我通过url直接访问.css页面,则输出到浏览器屏幕会显示所有新的css代码。
如果我在Chrome浏览器中渲染相同的页面,它会显示新的css而没有任何问题...但是ie和ff显示旧的CSS。
我不明白发生了什么以及如何解决它。任何人都可以帮助我吗?
答案 0 :(得分:6)
ctrl + shift + del 在两个浏览器中都允许您通过漂亮的复选框清除缓存,Cookie,临时文件等
答案 1 :(得分:4)
也许css文件缓存在浏览器中。尝试CTRL + F5。如果这不起作用,请尝试清除缓存,如果不起作用,请尝试重新启动。 :d
答案 2 :(得分:0)
我尝试了CTRL + F5,清除缓存,重新启动......没有一个正常工作。然后我决定更改css.php文件中readfile()函数的顺序。一旦我移动了它周围的顺序就触发了新的css加载。我不确切知道为什么会这样,但现在新的css已加载。
决定在这里回答这个问题,以防其他人遇到类似的问题并且传统的缓存清算无法解决问题。
答案 3 :(得分:0)
这是技巧,而不是版本,只需使用PHP filemtime()函数来显示您上次修改的文件。
<link rel='stylesheet' href='stylesheet/css.php?<?php filemtime('stylesheet/css.php'?>' type='text/css' />
因此,每次修改CSS文件时,浏览器都会知道必须加载哪个文件。
希望它有所帮助..