我刚刚将一个项目从Symfony 4.3更新到4.4。更新后,当我有一个错误时,显示的页面是带有"Oops!an error Occurred!“的生产错误页面,而不是包含所有错误跟踪的开发错误页面。
此外,分析器不会记录错误页面,我可以看到分析器中的所有请求,但看不到有错误的请求。
如果我查看日志(我正在使用docker),我可以在那里看到php错误:
$ docker logs php
172.21.0.3 - 17/Jun/2020:09:50:53 +0000 "GET /index.php" 500
[17-Jun-2020 09:50:53] WARNING: [pool www] child 6 said into stderr: "NOTICE: PHP message: PHP Fatal error: Uncaught Twig\Error\SyntaxError: Unexpected "}". in /app/templates/professionals/artists/list.html.twig:26"
[17-Jun-2020 09:50:53] WARNING: [pool www] child 6 said into stderr: "Stack trace:"
[17-Jun-2020 09:50:53] WARNING: [pool www] child 6 said into stderr: "#0 /app/vendor/twig/twig/src/Lexer.php(292): Twig\Lexer->lexExpression()"
[17-Jun-2020 09:50:53] WARNING: [pool www] child 6 said into stderr: "#1 /app/vendor/twig/twig/src/Lexer.php(186): Twig\Lexer->lexVar()"
[17-Jun-2020 09:50:53] WARNING: [pool www] child 6 said into stderr: "#2 /app/vendor/twig/twig/src/Environment.php(542): Twig\Lexer->tokenize(Object(Twig\Source))"
[17-Jun-2020 09:50:53] WARNING: [pool www] child 6 said into stderr: "#3 /app/vendor/twig/twig/src/Environment.php(595): Twig\Environment->tokenize(Object(Twig\Source))"
[17-Jun-2020 09:50:53] WARNING: [pool www] child 6 said into stderr: "#4 /app/vendor/twig/twig/src/Environment.php(408): Twig\Environment->compileSource(Object(Twig\Source))"
[17-Jun-2020 09:50:53] WARNING: [pool www] child 6 said into stderr: "#5 /app/vendor/twig/twig/src/Environment.php(381): Twig\Environment->loadClass('__TwigTemplate_...', 'professionals/a...', NULL)"
[17-Jun-2020 09:50:53] WARNING: [pool www] child 6 said into stderr: "#6 /app/vendor/twig/twig/src/Environment.php(359): Twig\Environment->loadTemplate('professionals/a...')"
[17-Jun-2020 09:50:53] WARNING: [pool www] child 6 said into stderr: "#7 /app/vendor/symfony/twig-bridge/TwigEngine.php(135): Twig\Environment->load('professionals/a...')"
[17-Jun-2020 09:50:53] WARNING: [pool www] child 6 said into stderr: "#8 /app/vendor/symfony/twig-bridge/TwigEngine.php(54): Symfony\Bridge\Twig\TwigEngine->load(..."将.env文件设置为APP_ENV=dev
发布于 2020-06-18 23:52:27
已找到错误。这是FosRestBundle包的错误配置。
我在版本2.5中有version /rest-bundle的朋友。我升级到了2.8,在fos_rest-yml中删除了配置"exception_controller:'fos_rest.exception.controller:showAction“。
在那之后,一切都恢复正常了。
发布于 2020-06-17 21:32:24
在Symfony 4.4中,发布了ErrorHandler组件that replaced the Debug component。
这样一来,一些文件的位置就改变了。
您需要找到config/routes/dev/twig.yaml,并删除以下行:
# config/routes/dev/twig.yaml
_errors:
resource: '@TwigBundle/Resources/config/routing/errors.xml'
prefix: /_error取而代之的是,创建一个包含以下内容的新文件config/routes/dev/framework.yaml:
# config/routes/dev/framework.yaml
_errors:
resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
prefix: /_error这应该会在开发期间恢复旧的错误预览页。
发布于 2021-06-28 18:17:03
在Symfony 4.4中,Debug类已从Symfony\Component\Debug\Debug更改为Symfony\Component\ErrorHandler\Debug
因此,您必须更改app_dev.php和其他调试前端控制器,以便Debug::enable()通向新的前端控制器。
https://github.com/symfony/symfony/issues/36254#issuecomment-701260396
https://stackoverflow.com/questions/62426258
复制相似问题