问题描述
我处于我的网站绝对不喜欢缓存的位置。缓存以某种方式导致了一个大问题,而我的CMS不允许我从缓存中排除某些脚本,因此我可以顺利加载页面。因此,我要做的是创建从我的URL yourdomain.com到yourdomain.com/?nocache的重定向。这将强制向用户显示一个非缓存的站点。这完全适合我。
但是,我想从URL中隐藏“?nocache”部分,并仍然强制显示网站的非缓存版本。请问对此有什么帮助吗?
我在wodpress.com上的wordpress BTW上,他们说不能禁用缓存,甚至缓存插件也没有作用,所以我不能从缓存中排除某些脚本。
解决方法
使用JS将?nocache
(或者更好的是?timestamp
,其中timestamp
是当前的Unix时间,例如1598155107
)附加到每个链接URL(或×tamp
(如果URL已经包含查询字符串)。
此解决方案使用jQuery,但您可以将其改编为普通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);
});
,
好吧,我已经意识到做到这一点的最好方法不是通过nocache重定向,而是在主题头中实际传递nocache头。
我通过了
nocache_headers();
更多信息:https://developer.wordpress.org/reference/functions/nocache_headers/
在header.php文件中,这解决了我的问题。现在,该站点成功加载而没有缓存。