滚动
调试时查找模板文件
要了解哪个模板为特定元素生成标记,可以使用 Twig 的内置 debug 选项。该参数会在输出的 HTML 中显示注释,其中包括所使用的主题钩子、推荐的模板文件名,以及用于渲染某个部分的确切 Twig 文件。
在 sites/default/services.yml 中启用 Twig 调试,在 twig.config 部分设置 debug: true(在生产环境请关闭)。如果你在多站点模式下使用 Drupal 8,应编辑对应站点目录下的 sites/currenttsite/services.yml 文件。如果 services.yml 尚不存在,可以从 sites/default/default.services.yml 复制一份并重命名为 services.yml。详细的 Twig 调试方法参见 «调试已编译的 Twig 模板»。
在清理缓存后,查看页面源代码;你会看到类似如下的调试信息:
<!-- THEME DEBUG --> <!-- THEME HOOK: 'node' --> <!-- FILE NAME SUGGESTIONS: * node--view--frontpage--page-1.html.twig * node--view--frontpage.html.twig * node--1--teaser.html.twig * node--1.html.twig * node--article--teaser.html.twig * node--article.html.twig * node--teaser.html.twig x node.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content/node.html.twig' --> <article data-history-node-id="1" data-quickedit-entity-id="node/1" role="article" class="contextual-region node node--type-article node--promoted node--view-mode-teaser" about="/node/1" typeof="schema:Article" data-quickedit-entity-instance-id="0"> .... </article> <!-- END OUTPUT from 'core/themes/classy/templates/content/node.html.twig' -->
从调试输出中需要注意的几点:
- 模板文件名建议按顺序从最具体到最不具体排列。
- 当前使用的模板文件名前带有符号「x」。
- 在 BEGIN OUTPUT 和 END OUTPUT 标记中,会显示当前使用模板的完整路径。