Drupal 8自定义主题中视图无法显示的原因排查求助
排查Drupal 8.7.3自定义主题中视图不显示的问题
根据你提供的代码和问题描述,我帮你梳理几个最可能的原因和解决办法:
1. 自定义主题模板未渲染视图所在区域
从你给出的page.html.twig代码来看,只渲染了{{ page.content }}区域,但如果你的视图是分配到了其他自定义区域(比如services、works这类你在test.info.yml里定义的区域),模板里没有输出对应区域的话,视图自然不会显示。
解决步骤:
- 先回到视图配置页面,确认你把视图分配到了哪个区域(比如
services) - 打开你的
page.html.twig文件,在合适的位置添加对应区域的渲染代码,建议加上条件判断避免空结构:
把{% if page.services %} <div class="services-region"> {{ page.services }} </div> {% endif %}services换成你实际分配的区域名称即可。
2. 区域名称拼写不匹配
Drupal对区域名称的大小写、拼写是严格匹配的,检查视图配置里选择的区域名称,和test.info.yml中regions下的名称是否完全一致(比如info里是quote1,视图里不能写成Quote1)。
3. 主题缓存未清除
修改主题配置(比如新增区域)后,Drupal的缓存可能会导致新配置不生效。你可以:
- 使用Drush命令清除缓存:
drush cr - 或者后台手动清除:进入配置 -> 性能页面,点击“清除所有缓存”按钮
4. 额外检查视图本身的配置
虽然切换到Bartik能显示,但还是快速确认下:
- 视图的访问权限是否设置为“所有用户”或者当前测试用户有权限访问
- 视图的显示条件(比如页面路径、上下文过滤器)是否没有冲突
按照上面的步骤排查,大概率能解决视图不显示的问题。
内容的提问来源于stack exchange,提问作者Niladri Banerjee - Uttarpara
相关产品推荐
相关产品推荐

