如果你想知道哪个模板生成了指定元素, 你可以使用 Twig 的 debug 功能. 主题名字旁边也显示了文件的位置.
Twing debugging 可以在 sites/default/services.yml 文件内开启, 将twig.config 下的 debug 变量改为 true. 设置后,请清除缓存.
如果你查看当前页面下的源文件, 你将看到 debug 的输出类似下面 Twing templates 被渲染.
<!-- THEME DEBUG --> <!-- CALL: theme('block') --> <!-- FILE NAME SUGGESTIONS: * block--system.html.twig * block--system-menu-block.html.twig * block--system-menu-block--tools.html.twig * block--bartik-tools.html.twig x block.html.twig --> <!-- BEGIN OUTPUT from 'core/modules/block/templates/block.html.twig' --> <div class="block block-system contextual-region block-menu" id="block-bartik-tools" role="navigation"> <h2>Tools</h2> <div data-contextual-id="block:block=bartik_tools:|menu:menu=tools:"></div> <div class="content"> <ul class="menu clearfix"><li class="first collapsed"><a href="/node/add">Add content</a></li> <li class="last leaf"><a href="/block/add" title="Add custom block">Add custom block</a></li> </ul> </div> </div> <!-- END OUTPUT from 'core/modules/block/templates/block.html.twig' -->
下面是比较有用的
<!-- BEGIN OUTPUT from 'core/modules/block/templates/block.html.twig' -->
<!-- END OUTPUT from 'core/modules/block/templates/block.html.twig' -->
所有核心模板都在模块 /core/modules/system 文件夹下, Drupal 8 有一个子目录,名字为 "templates"
在这个文件夹内,我们可以找到所有类型的 模板文件 和 page.html.twig
system ... |-templates | |-admin-block-content.html.twig | |-admin-block.html.twig | |-admin-page.html.twig | |-block--system-branding-block.html.twig | |-block--system-menu-block.html.twig | |-breadcrumb.html.twig ... | |-menu-local-action.html.twig | |-menu-local-task.html.twig | |-menu-local-tasks.html.twig | |-menu.html.twig | |-page.html.twig | |-pager.html.twig | |-progress-bar.html.twig ...