首页 > 解决方案 > symfony 错误处理程序的 prod 环境中缺少供应商资产

问题描述

升级到 symfony 5 后,我发现 symfony 错误处理程序丢失资产的警告:

php.WARNING:警告:包括(/var/www/projekt/nakade/vendor/symfony/error-handler/ErrorRenderer/../Resources/assets/css/error.css):无法打开流:没有这样的文件或目录{“异常”:“[对象](错误异常(代码:0):

在调查了这个问题后,我发现资产目录在 prod 环境中丢失,而在 dev env 目录和 css 类存在。我认为缺少 css 是因为该组件只是在 require-dev 中。

"require-dev": { ... "symfony/browser-kit": "5.0.*", "symfony/css-selector": "5.0.*", "symfony/debug-bundle": "5.0.*", "symfony/maker-bundle": "^1.13", "symfony/phpunit-bridge": "^5.0", "symfony/profiler-pack": "1.0.*", "symfony/test-pack": "^1.0", "symfony/var-dumper": "5.0.*" },

env var 在 .env.local 中设置 APP_ENV=prod 由于缺少 robots.txt 和 sitemap.xml,google-bot 显示了错误消息。这是固定的,错误和警告消失了,但我很好奇。

有人知道如何解决这个问题吗?

标签: symfonycomposer-phpproduction-environmentsymfony5

解决方案


通过深入查看堆栈跟踪找到了答案:

[2020-04-16 23:33:35] php.CRITICAL:未捕获的异常:URI“/robots.txt”的控制器不可调用。控制器“App\Controller\MyExceptionController”既不作为服务存在,也不作为类存在.. {"exception":"[object] (InvalidArgumentException(code: ...

这是 twig.yaml 中弃用的提示:

前:

树枝:exception_controller:'App\Controller\MyExceptionController' ...

后:

树枝:异常控制器:空...


推荐阅读