profiler工具栏不显示是因symfony调试上下文未激活:需确保.env中app_env=dev、app_debug=1,验证kernel.debug为true,检查模板含{{ render_profiler() }},确认_profiler路由存在且响应头含x-debug-token。

Profiler 工具栏不显示,但页面能正常访问
这通常不是 FrankenPHP 的问题,而是 Symfony 的调试上下文没被正确激活。FrankenPHP 本身不干涉 PHP 的 $_SERVER 变量注入逻辑,但它默认以 production 模式运行——哪怕你本地用 frankenphp serve 启动,APP_ENV 和 APP_DEBUG 若没显式设为 dev/1,Kernel 就不会加载 WebProfilerBundle。
检查点如下:
-
.env文件中必须有APP_ENV=dev和APP_DEBUG=1,且不能被.env.local或运行时环境变量覆盖 - 执行
php bin/console about,确认输出里Environment是dev、Debug是true - 在控制器里加
dump($this->getParameter('kernel.debug')),输出必须是true;如果为false,说明 Kernel 构造时已跳过调试模式初始化 - FrankenPHP 的 CLI 模式(
frankenphp serve)不会自动读取.env—— 你得手动传:APP_ENV=dev APP_DEBUG=1 frankenphp serve
页面底部无 <script id="sfwdt"></script>,Network 中也看不到 _profiler 请求
说明 Profiler 的响应注入流程被截断。FrankenPHP 使用 SAPI 模式运行 PHP,不经过 Apache/Nginx 的输出缓冲层,所以常见于 ob_end_clean()、exit、或模板里漏掉 {{ render_profiler() }} 的问题会更“硬性”地生效。
排查顺序:
- 打开主 Twig 模板(如
templates/base.html.twig),确认
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











