繁体   English   中英

在 OpenCart 3 中为开发禁用模板缓存

[英]Disable template caching for development in OpenCart 3

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

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

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

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

在此处输入图片说明

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

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

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

system\library\template\Twig\Environment.php

查找

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

替换:

$this->debug = (bool) true;

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

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

我认为您之前将模板编辑为路径:Design->Theme Editor。

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

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

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

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

PS 整天找这个,希望它可以帮助别人

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM