在OpenCart 3中禁用模板缓存以进行开发

时间:2017-07-20 16:25:53

标签: php opencart opencart-3

我在OpenCart 3中对主题模板进行了更改。由于模板缓存,我每次都必须在“storage / cache”目录下清除缓存。在开发过程中频繁地工作和预览更改时非常烦人。请提供一些解决方案,以便我们根据生产和开发环境配置缓存。

注意:我已经在线搜索了解决方案,但没有与模板缓存相关的解决方案。解决方案可用于禁用图像缓存,但“图像缓存”和“模板缓存”是Opencart中提供的不同功能。

8 个答案:

答案 0 :(得分:35)

您可能需要升级到更新版本的OpenCart3 - 第一个版本(3.0.0.0)没有办法在GUI中执行此操作。

更新版本(例如3.0.2.0)在管理信息中心上有一个装备。单击齿轮,您将获得禁用缓存的选项。

enter image description here

答案 1 :(得分:2)

如果您有权访问,也可以直接从CODE执行此操作。通过ftp或cPanel转到下面的文件路径:

system\library\template\Twig\Environment.php

查找

$this->debug = (bool) $options['debug'];

替换:

$this->debug = (bool) true;

答案 2 :(得分:2)

Opencart版本3.0.2.0 我遇到了同样的问题,请尝试在主题编辑器或实际的原始树枝文件中工作,一两个小时后,我尝试了此方法。

删除主题编辑器中的更改并返回编辑实际的树枝文件 my screen shot

答案 3 :(得分:1)

我认为您将模板编辑为路径:Design->之前的主题编辑器。

清除数据库的oc_theme数据表中的所有日期。

答案 4 :(得分:1)

斯科特的答案是最好的,但是如果由于版本而无法使用,或者你想以编程方式禁用它,你可以在渲染树枝之前的任何地方执行此操作:

$this->config->set('template_cache', false);

答案 5 :(得分:1)

另一种方法: 打开system \ library \ template \ Twig \ Cache \ Filesystem.php,找到以下代码行

public function load($key)
{
    if (file_exists($key)) {
        @include_once $key;
    }
}

按以下代码注释:

public function load($key)
{
    // if (file_exists($key)) {
    //      @include_once $key;
    // }
}

一旦开发结束,remove the template cache就会在树枝上{{3}}并重新创建。

答案 6 :(得分:0)

在OC 3.0.3.6中,如果您有一些树枝扩展名,例如树枝管理器,则在进行更改后,您应该在修改中选择该扩展名并刷新右上角的按钮。

P.S。一整天都找不到这个,希望对别人有帮助

答案 7 :(得分:0)

这与Scott的答案类似,但仅在数据库/后端上。万一您不能依赖UI,而只能访问DB(像我一样,我搞砸了UI),它在设置表中搜索'developer_theme'key并将其设置为false或0

UPDATE `oc_setting` SET `value` = '0' WHERE `oc_setting`.`key` = 'developer_theme';