我正在使用一个名为facebox的jquery插件。它运作得很好,但我面临着!有问题。看起来它的 iframe 方法导致我的浏览器缓存正在目标页面中加载的 css。
这就是我在 jquery 就绪状态的页面中调用它的方式。
$('a.participate').click( function(){
$.facebox({
iframe: '" . $urlparticipate . "',
rev: 'iframe|550|550'
});
return false ;
});
其中 $urlparticipate 是将在 iframe 中打开的 url。 我仔细查看了facebox.js,发现插件似乎使用以下方法来创建iframe。
function fillFaceboxFromIframe(href, klass, height, width) {
$.facebox.reveal('<iframe scrolling="auto" marginwidth="0" width="'+width+'" height="' + height + '" frameborder="0" src="' + href + '" marginheight="0"></iframe>', klass)
}
如何防止 css 被缓存?我知道它正在被缓存,因为我更改了元素的 css 样式。我什至更改了一些正在加载的 js 代码,但它仍然加载旧的代码。
我还尝试了以下方法:
在前端目标页面头部添加
meta http-equiv="Cache-control"content="no-cache"
meta http-equiv="Pragma"content="no-cache"
meta http-equiv="Expires"content="0"
我尝试从代码隐藏(php)添加一些 header
header("缓存控制:无缓存");
header("Pragma: 无缓存");
一切都没有成功.. 我错过了什么?
最佳答案
您始终可以尝试对页面上的 CSS 引用进行“版本控制”。有好的和不太好的方法可以做到这一点:使用每次进行更改时附加的单个静态版本号,或者随机生成的 GUID,该 GUID 将有效地强制对页面的每个请求检索 CSS 文件( s)。更好的选择是静态选项,如下所示:
<link type="text/css" rel="stylesheet" href="cssfile.css?1.12" />
关于php - css 和 js 文件被 iframe 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12000468/