我试图避免在我的Codeigniter项目中使用浏览器缓存。我发现this回答非常有帮助。我在控制器中通过以下代码设置输出标头:
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");
$this->output->set_header("Cache-Control: post-check=0, pre-check=0");
$this->output->set_header("Pragma: no-cache");
对大多数情况都适用。但是当我重定向到某个其他控制器类的控制器方法时,此过程不起作用。在重定向到其他控制器期间,我该怎么做才能设置no-cache标头?
答案 0 :(得分:0)
我发现了这个问题。重定向到其他控制器时,将输出标题设置为$此引用不正确。因为通过使用$设置标头,此引用仅影响该控制器的输出类。
为避免缓存跨控制器缓存,您必须设置如下标题:
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
您还可以从目标重定向类设置标头。但是为了避免缓存表单提交,上述过程很好。