如何使cakephp cacheAction与多语言一起使用

时间:2019-05-16 15:28:49

标签: cakephp-2.0

我正在使用Cakephp 2.x

我有一个包含静态页面(多语言)和cacheAction的网站。

缓存无法识别语言,并以最火辣的语言缓存页面。...

有什么办法解决(禁用缓存的一部分?) 谢谢, 马西莫

class PagesController extends AppController {

/**
* This controller does not use a model
*
* @var array
*/
public $uses = array();
public $helpers = ['Cache','AbTest.AbTest'];
public $cacheAction = '1 month';
public $components = array('AbTest.AbTest');

....

if ($locale && file_exists(APP . 'View' . $theme_path . DS .     $this->viewPath . DS . $locale .DS. implode('/', $path) . $this->ext )) 
    {       
        array_unshift($path,$locale);
    }

    try {
        $this->render(implode('/', $path));
    } catch (MissingViewException $e) {
        if (Configure::read('debug')) {
            throw $e;
        }
        throw new NotFoundException();
    }

我希望缓存将ita / pages / who和eng / pages / who呈现为不同的页面,同时输出总是ita / pages / who

1 个答案:

答案 0 :(得分:0)

对此有一个名为Cache.viewPrefix的选项。您没有提到如何管理站点中的语言,但是基本逻辑是可以使用该语言设置缓存文件前缀,这样,每种语言都将拥有单独的缓存文件。例如,您可以在您的PagesController或AppController中完成此操作,例如

Configure::write('Cache.viewPrefix', /* place the language here */);