我正在 OpenCart 3 中更改我的主题模板。由于模板缓存,我每次都必须在“存储/缓存”目录下清除缓存。在开发过程中频繁工作和预览更改非常烦人。请提供一些解决方案,我们如何根据生产和开发环境配置缓存。
注意:我已经在网上搜索过解决方案,但是没有与模板缓存相关的解决方案。解决方案可用于禁用图像缓存,但“图像缓存”和“模板缓存”是 Opencart 中提供的不同功能。
我正在 OpenCart 3 中更改我的主题模板。由于模板缓存,我每次都必须在“存储/缓存”目录下清除缓存。在开发过程中频繁工作和预览更改非常烦人。请提供一些解决方案,我们如何根据生产和开发环境配置缓存。
注意:我已经在网上搜索过解决方案,但是没有与模板缓存相关的解决方案。解决方案可用于禁用图像缓存,但“图像缓存”和“模板缓存”是 Opencart 中提供的不同功能。
另一种方法:打开 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 我遇到了同样的问题,尝试在主题编辑器或实际的原始树枝文件中工作,一两个小时后我尝试了它。
删除主题编辑器中的更改并返回编辑 我的屏幕截图的实际树枝文件
我认为您将模板编辑为路径:之前的设计->主题编辑器。
清除数据库的 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';