Symfony/Twig页面文本无法识别且不可见,该如何解决?
Symfony 页面文本消失问题解决记录
我搭建了一个Symfony项目,配置了路由、基础模板,还在页面中引入了Google Fonts字体。突然遇到异常:页面内编写的文本完全不可见,用Firefox开发者工具也找不到这些文本节点。在引入样式表和自定义字体前,文本是正常显示的,且样式表加载正常、路径无误。我尝试切换localhost:8000与127.0.0.1:8000、多次清除缓存、甚至重新创建整个Symfony项目,均未解决问题。本地环境使用Symfony自带的服务器。
问题解决过程
后来在r/Webdev社区求助,按照建议创建了一个含“Hello World”的Twig页面Index,结合社区用户@Darkbee的提示,发现移除Index基础模板中的body块后文本消失,重新添加则恢复显示。于是我为DiCabrio的基础模板补上body块,文本立刻正常显示,问题彻底解决。
此前误以为body块无用而删除,在此特意提醒Symfony使用者:绝对不要移除基础模板中的body块!
当前页面已正常显示标题和段落文本。
相关代码示例
子模板(DiCabrio.html.twig)
{% extends "DiCabrio_Base.html.twig" %} {% block body %} <h1>Awesome cabrio's:</h1> <p>Here are 5 very awesome cabrios to consider!</p> {% endblock %}
样式表(DiCabrio_Style.css)
html { font-family: 'Manrope', sans-serif; }
基础模板(DiCabrio_Base.html.twig)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{% block title %}DiCabrio{% endblock %}</title> <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>"> {% block stylesheets %} <link rel= "stylesheet" href= "{{ asset ('/CSS Documents/DiCabrio_Style.css') }}"> {% endblock %} {% block javascripts %} {% endblock %} </head> <!-- 注:正确的基础模板需包含<body>标签,并将body块放置在<body>内部,避免渲染异常 --> <body> {% block body %} {% endblock %} </body> </html>
控制器代码
<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; class DiCabrio_Controller extends AbstractController { #[Route ('/' , name: 'DiCabrio')] public function dicabrio(): Response { return $this->render('DiCabrio.html.twig'); } }
内容的提问来源于stack exchange,提问作者user20228338
相关产品推荐
相关产品推荐

