22

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

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

4

8 回答 8

47

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

更新的版本,例如 3.0.2.0,在管理仪表板上有一个齿轮。单击齿轮,您将获得禁用缓存的选项。

在此处输入图像描述

于 2017-07-21T14:54:31.390 回答
6

另一种方法:打开 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;
    // }
}

这将删除树枝的模板缓存并每次重新创建,一旦开发结束,您必须删除评论。

于 2019-02-10T05:20:43.103 回答
2

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

system\library\template\Twig\Environment.php

寻找

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

代替:

$this->debug = (bool) true;
于 2018-01-01T06:20:55.023 回答
2

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

删除主题编辑器中的更改并返回编辑 我的屏幕截图的实际树枝文件

于 2019-02-09T19:19:44.043 回答
1

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

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

于 2017-09-10T16:08:27.940 回答
1

Scott 的回答是最好的,但如果由于版本原因它不可用,或者您想以编程方式禁用它,您可以在呈现树枝之前的任何地方执行此操作:

$this->config->set('template_cache', false);
于 2018-02-04T07:00:43.653 回答
0

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

PS松了一整天才找到这个,希望对某人有所帮助

于 2020-08-19T19:09:48.057 回答
0

这类似于 Scott 的回答,但仅在数据库/后端上。如果您不能依赖 UI 并且只能访问数据库(像我一样,我正在搞乱 UI),它会在设置表中搜索“developer_theme” key并将其设置为 false 或 0。

UPDATE `oc_setting` SET `value` = '0' WHERE `oc_setting`.`key` = 'developer_theme';
于 2020-10-22T11:05:41.593 回答