デフォルトでは、出力キャッシュはコントローラベースです。したがって、コントローラの名前が同じであれば、同じキャッシュが生成または使用されます(キャッシュディレクトリが両方の場所で同じ場合)。
最も適切な回避策は、キャッシュドライバを使用してキャッシュを手動で保存することです。コントローラコードの例を次に示します。
public function index()
{
// If we have a cache just return it and be done.
if ($mobile = $this->cache->get('page_mobile') AND $this->agent->is_mobile())
{
$this->output->set_output($mobile);
return TRUE;
}
elseif ($page = $this->cache->get('page))
{
$this->output->set_output($page);
return TRUE;
}
$vars = array();
// Save a cache and output the page.
if ($this->template->is_mobile)
{
$home = $this->load->view('page_mobile', $vars, TRUE);
$this->cache->save('controller_mobile', $home, 500);
$this->output->set_output($home);
}
else
{
$home = $this->load->view('page', $vars, TRUE);
$this->cache->save('controller', $home, 500);
$this->output->set_output($home);
}
}
これは非常に役に立ちます。 – Ben