Codeigniter - кеш страниц с поддоменами - PullRequest
0 голосов
/ 12 ноября 2011

Я использую кэш страницы Codeigniter по умолчанию, например ::100100

$this->output->cache(n);

Моя проблема в том, что я использую это в двух разных контроллерах и получаю дублированную кешированную страницу, т.е. одну и ту же страницу, возвращаемую для обоих. Я полагаю, что это связано с использованием субдомена, например:

mobile.mysite.com => Контроллер 1

mysite.com => Контроллер 2

Когда я включаю кеш на обоих, я получаю одну и ту же страницу.

Как мне создать отдельный кеш для каждого?

С уважением, Бен.

1 Ответ

0 голосов
/ 13 ноября 2011

По умолчанию кэш вывода основан на контроллере.Таким образом, как вы видите, если контроллер назван одинаково, он будет генерировать или использовать один и тот же кеш (если у вас кеш-каталог одинаковый в обоих местах).

Ваш лучший обходной путь - использовать драйвер кеша и хранить вашикешировать вручную.Вот пример кода контроллера:

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);
    }   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...