Twig模板引擎提供了配置调试的选项,自动启动(编译)模板,在文件系统里缓存编译的模板。默认的,Twig模板引擎编译到php代码中并且存储编译代码到内存中。编译后的代码不利于开发,因为改变Twig模板引擎不会立刻更新到你的Drupal站点。Twig缓存可以通过清除Drupal缓存接口清除,但对于正在开发的项目更容易改变Drupal的设置使Twig不缓存任何东西。
注意大部分情况下你会想禁用渲染API缓存。如下指令。如果你不这样做仍然需要刷新缓存才能看到Twig模板引擎的改变因为渲染API使用关联Twig模板生成HTML然后缓存生成的HTML和你的Twig模板后续试图中不被使用。不管Twig调试的设置。
在Drupal控制台中怎样启用调试
drupal site:mode dev
这将改变你的下列sites/default/services.yml中的值
twig.config: { debug: true, auto_reload: true, cache: false }
你将看到一些相似的:
怎样手动启用调试
1.找到你站点的services.yml文件,可能在sites/default/services.yml
2.如果services.yml;复制default.services.yml并重命名为services.yml
3.编辑services.yml文件不存在启用一个或更多的下面的调试选项
4.重建缓存
找到services.yml中的twig.config参数并修改,例如:
parameters: twig.config: debug: true
Twig调试选项
debug:true
当调试启用:
- 每一个Twig模板都有HTML注释包含主题信息,例如模板文件名称的建议。
- 注意这将导致自动测试直接检测HTML渲染失败。自动检测,’twig_debug’也将设置成FALSE.
- Dump()方法可以用于Twig引擎输出模板信息。
- 当源码改变的时候Twig模板引擎自动重新编译(见下面的twig_auto_reload)
- 不推荐用于生产环境。(默认:false)
Twig auto-reload
auto_reload:true
- 当源码改变的时候自动重新编译Twig 模板引擎。如果不给Twig_auto_reload提供一个值,它根据Twig_debug的值确定一个值。
- 不推荐用于生产环境。(默认:null)
Twig 缓存
cache:false
- 默认的,Twig模板引擎编译和存储在系统文件增加性能。启用Twig缓存将在每次使用源码的时候重新编译模板。大部分的twig_auto_reload设置应该启用而不是禁用Twig缓存。
- 不推荐用于生产环境。(默认:true)
Drupal 渲染缓存
默认的,Drupal缓存渲染区块和实体,加快后续页面加速问题。这意味着改变Twig模板引擎不会立即生效。设置渲染缓存使用空缓存后端有效禁用。 禁用渲染缓存,去掉下面的注释settings.php,复制sites/example.setings.local.php到sites/default/settings.local.php,并且清除Drupal缓存:
<?php if (file_exists(__DIR__ . '/settings.local.php')) { include __DIR__ . '/settings.local.php'; } ?>
也去掉你刚刚复制的后端示例文件中的注释:
<?php $settings['cache']['bins']['render'] = 'cache.backend.null'; $settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null'; ?>
更多的信息见#1843034: Make Twig settings configurable
Drupal渲染缓存不被Drupal控制台支持更多相关设置信息见 https://github.com/hechoendrupal/DrupalConsole/issues/1309