【问题标题】:Hide ?nocache query string but show it's effects隐藏 ?nocache 查询字符串但显示它的效果
【发布时间】:2020-12-11 22:42:27
【问题描述】:

我的网站绝对不喜欢缓存。不知何故,缓存导致了一个巨大的问题,我的 CMS 不允许我从缓存中排除某些脚本,以便我可以顺利加载页面。所以我所做的是创建一个从我的 URL yourdomain.com 到 yourdomain.com/?nocache 的重定向。这将强制向用户显示非缓存站点。这完全适合我。

但是,我想从 URL 中隐藏“?nocache”部分,并且仍然强制显示该站点的非缓存版本。请问这方面有什么帮助吗?

我在 wodpress.com 上的 wordpress 顺便说一句,他们说缓存不能被禁用,甚至缓存插件也没有效果,所以我不能从缓存中排除某些脚本。

【问题讨论】:

    标签: php url caching url-rewriting


    【解决方案1】:

    使用 JS 将?nocache(或者更好的是?timestamp,其中timestamp 是当前的Unix 时间,例如1598155107)附加到每个链接URL 的末尾(或者&timestamp,如果URL 已经包含查询字符串)。

    此解决方案使用 jQuery,但您可以将其调整为 vanilla JS:

    $('a').each(function(i,link){
        let ts = new Date().getTime(); // E.g. 1598155107
        let href = $(this).attr('href');
        if ( href.match(/\?/) ) {
            href += '&';
        } else {
            href += '?';
        }
        href += ts;
        $(this).attr('href', href);
    });
    

    【讨论】:

      【解决方案2】:

      好的,我意识到最好的方法不是通过 nocache 重定向,而是在主题标头中实际传递 nocache 标头。

      我做到了

      nocache_headers();
      

      更多信息:https://developer.wordpress.org/reference/functions/nocache_headers/

      在 header.php 文件中,这解决了我的问题。现在网站在没有缓存的情况下成功加载。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 2011-06-05
        • 2022-01-16
        • 2012-01-23
        • 2012-11-08
        相关资源
        最近更新 更多