CSS 和 JS 文件正在由 iframe 缓存


css and js files are being cached by the iframe

我正在使用一个名为facebox的jquery插件。效果很好,但我面对!有问题。看起来它的 iframe 方法导致我的浏览器占用了目标页面中加载的 css。

这就是我在 jquery 就绪状态下在我的页面中调用它的方式。

$('a.participate').click( function(){
            $.facebox({
                iframe: '" . $urlparticipate . "',
                rev: 'iframe|550|550'
            });
            return false ;
        });

其中$urlparticipate 是将在 iframe 中打开的 URL。我在面框中仔细观察.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代码,并且仍在加载旧代码。

我还尝试了以下方法:

  1. 在头部前端添加目标页面

    meta http-equiv="Cache-control" content="no-cache"

    meta http-equiv="Pragma" content="no-cache"

    meta http-equiv="Expires" content="0"

  2. 我尝试从代码隐藏(php)添加一些标头

    标头("缓存控制:无缓存");

    标头("Pragma: no-cache");

一切都没有成功..我错过了什么?

您可以随时尝试对页面上的 CSS 引用进行"版本控制"。有好的和不太好的方法可以做到这一点:每次进行更改时都附加单个静态版本号,或者随机生成的 GUID,这将有效地强制对页面的每个请求检索 CSS 文件。更好的选择是静态的,如下所示:

<link type="text/css" rel="stylesheet" href="cssfile.css?1.12" />

尝试抛出带有 CSS 文件名(通常是版本号)的 var,以便浏览器无法缓存它。类似 foo.css?ver=bar